Keselamatan Spring dan Pengesahan JWT · Pelajaran

Melaksanakan Pengesahan Berbilang Faktor

Tambahkan lapisan keselamatan tambahan dengan MFA, yang memerlukan pengguna memberikan pelbagai bentuk pengesahan.

Pelajaran 1 daripada 412 langkah

Melaksanakan Pengesahan Berbilang Faktor ialah pelajaran Keselamatan Spring dan Pengesahan JWT percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Apakah Pengesahan Berbilang Faktor?

Selamat datang ke Pengesahan Berbilang Faktor (MFA)! MFA menambahkan lapisan keselamatan tambahan selain kata laluan semata-mata.

Ia menghendaki pengguna memberikan sekurang-kurangnya dua faktor pengesahan yang berbeza untuk membuktikan identiti mereka. Anggaplah ia seperti memerlukan lebih daripada satu kunci untuk membuka pintu.

Mengapa MFA Penting

Dalam dunia digital masa kini, kata laluan sahaja selalunya tidak mencukupi. Kebocoran data dan serangan pancingan data boleh menjejaskan pengesahan faktor tunggal dengan mudah.

MFA meningkatkan keselamatan dengan ketara kerana menyukarkan pengguna yang tidak dibenarkan untuk mengakses akaun, walaupun mereka telah mencuri kata laluan. Ia merupakan pertahanan penting terhadap kecurian kelayakan.

Meneroka Faktor MFA

MFA bergantung pada kategori faktor pengesahan yang berbeza:

  • Sesuatu yang anda tahu: Kata laluan, PIN atau soalan keselamatan.
  • Sesuatu yang anda miliki: Token fizikal, telefon pintar (untuk kod berasaskan aplikasi) atau kad pintar.
  • Sesuatu yang menjadi diri anda: Biometrik seperti cap jari, imbasan wajah atau pengecaman suara.

Persediaan MFA yang kukuh menggabungkan faktor daripada sekurang-kurangnya dua kategori yang berbeza.

Spring Security dan MFA

Spring Security menyediakan rangka kerja yang berkuasa untuk pengesahan dan keizinan. Walaupun ia tidak mempunyai modul MFA terbina dalam secara langsung, rangka kerja ini sangat mudah diperluas.

Kita boleh menyepadukan MFA dengan menyesuaikan aliran pengesahannya. Biasanya, ini melibatkan penambahan penapis tersuai, penyedia pengesahan dan butiran pengguna untuk mengendalikan faktor kedua.

Memilih Faktor Kedua: TOTP

Faktor kedua yang biasa dan digunakan secara meluas ialah Kata Laluan Sekali Guna Berasaskan Masa (TOTP). Ini ialah kod 6 digit yang dijana oleh aplikasi seperti Google Authenticator atau Authy.

Kod TOTP sah untuk tempoh yang singkat (biasanya 30–60 saat) dan berdasarkan kunci rahsia yang dikongsi serta masa semasa.

Pendaftaran Pengguna untuk TOTP

Proses pendaftaran MFA amat penting. Mula-mula, aplikasi anda menjana kunci rahsia yang unik untuk setiap pengguna.

Rahsia ini kemudiannya dipaparkan kepada pengguna, selalunya dalam bentuk kod QR, yang diimbas menggunakan aplikasi pengesah mereka. Aplikasi tersebut menyimpan rahsia itu dan menggunakannya untuk menjana kod berasaskan masa.

Menyimpan Rahsia MFA dengan Selamat

Kunci rahsia TOTP yang dijana amat sensitif. Kunci ini mesti disimpan dengan selamat dalam pangkalan data aplikasi anda.

Amalan terbaik menetapkan bahawa rahsia ini perlu disulitkan ketika disimpan. Jangan sekali-kali menyimpannya dalam teks biasa! Jika rahsia terjejas, penyerang boleh menjana kod TOTP yang sah.

Penyedia Pengesahan Tersuai

Untuk menyepadukan pengesahan TOTP ke dalam Spring Security, anda biasanya akan mencipta AuthenticationProvider tersuai.

Penyedia ini boleh dirangkaikan selepas pengesahan nama pengguna/kata laluan utama anda. Setelah faktor pertama disahkan, penyedia ini boleh menyemak faktor kedua (kod TOTP).

Menambah Baik Log Masuk dengan Penapis MFA

Satu lagi komponen penting ialah penapis Spring Security tersuai, yang biasanya melanjutkan OncePerRequestFilter.

Penapis ini memintas permintaan selepas pengesahan utama tetapi sebelum akses penuh diberikan. Jika MFA didayakan untuk seseorang pengguna, penapis ini boleh mengubah hala pengguna tersebut ke halaman pengesahan MFA khusus untuk memasukkan kod TOTP mereka.

Demo Logik Pengesahan TOTP

Berikut ialah contoh ringkas yang menunjukkan idea asas di sebalik pengesahan kod TOTP. Dalam aplikasi sebenar, pustaka khusus akan mengendalikan pengiraan berasaskan masa.

Cuba jalankannya untuk melihat cara kod yang dihantar disemak secara konsep berbanding kod yang dijangka.

public class TotpVerificationDemo {
  // In a real application, 'userSecret' would be securely stored per user
  private static final String USER_SECRET = "ABCDEFG12345"; // Example secret

  public static void main(String[] args) {
    System.out.println("--- TOTP Verification Demo ---");
    System.out.println("Imagine a user has this secret configured in their authenticator app.");
    
    // Simulate a TOTP code entered by the user
    int userSubmittedCode = 123456; // This would come from the user's input

    System.out.println("\nUser submitted code: " + userSubmittedCode);

    // In a real scenario, a TOTP library would generate
    // the expected code based on the secret and current time.
    // For this demo, let's assume a 'valid' code for the current window.
    int expectedCodeFromLibrary = 123456; // This changes every ~30s in real TOTP

    boolean isValid = checkTotpCode(USER_SECRET, userSubmittedCode, expectedCodeFromLibrary);

    if (isValid) {
      System.out.println("Verification SUCCESS: TOTP code is valid!");
    } else {
      System.out.println("Verification FAILED: TOTP code is invalid.");
    }
  }

  // This method simulates the check a TOTP library would perform.
  // In reality, 'expectedCode' would be calculated dynamically.
  public static boolean checkTotpCode(String secret, int submittedCode, int expectedCode) {
    // A real TOTP library checks submittedCode against expectedCode
    // and potentially codes from adjacent time windows (for clock skew).
    // For this simplified demo, we just check for equality.
    return submittedCode == expectedCode;
  }
}

Semakan Pantas MFA

Manakah antara berikut menerangkan faktor “pemilikan” dalam Pengesahan Berbilang Faktor?

Ringkasan Pelajaran MFA

Tahniah! Anda telah mempelajari asas Pengesahan Berbilang Faktor dan cara mendekati pelaksanaannya dalam aplikasi Spring Security.

  • MFA menambahkan lapisan keselamatan yang penting.
  • Ia bergantung pada “sesuatu yang anda tahu, miliki atau merupakan diri anda”.
  • TOTP ialah faktor kedua yang popular dan berkesan.
  • Kebolehkembangan Spring Security membolehkan penapis dan penyedia tersuai menyepadukan MFA.
  • Penyimpanan rahsia MFA dengan selamat amat penting.

Seterusnya, kita akan meneroka cara melindungi aplikasi anda daripada penyalahgunaan menggunakan pengehad kadar!

Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Melaksanakan Pengesahan Berbilang Faktor” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Keselamatan Spring dan Pengesahan JWT, termasuk “Melaksanakan Pengesahan Berbilang Faktor”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Keselamatan Spring dan Pengesahan JWT merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Melaksanakan Pengesahan Berbilang Faktor”?

Tambahkan lapisan keselamatan tambahan dengan MFA, yang memerlukan pengguna memberikan pelbagai bentuk pengesahan. Anda berlatih Keselamatan Spring dan Pengesahan JWT menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Keselamatan Spring dan Pengesahan JWT?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Keselamatan Spring dan Pengesahan JWT di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Melaksanakan Pengesahan Berbilang Faktor” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Keselamatan Spring dan Pengesahan JWT ini?

Ya. Setiap pelajaran Keselamatan Spring dan Pengesahan JWT menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Melaksanakan Pengesahan Berbilang Faktor
  2. Mengehadkan Kadar Akses API
  3. Pengendalian Peristiwa Pengesahan Tersuai
  4. Penguncian Akaun dan Perlindungan Daripada Serangan Brute Force
← Kembali ke Keselamatan Spring dan Pengesahan JWT