Spring Security 6 ja JWT-todennus · Oppitunti

Monivaiheisen todennuksen toteuttaminen

Lisää ylimääräinen suojauskerros MFA:n avulla ja edellytä käyttäjiltä useita varmennustapoja.

Oppitunti 1/412 vaihetta

Monivaiheisen todennuksen toteuttaminen on ilmainen Spring Security 6 ja JWT-todennus-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Spring Security 6 ja JWT-todennus-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Security 6 ja JWT-todennus-kurssilla on yhteensä 4 oppituntia.

Mitä monivaiheinen todennus on?

Tervetuloa monivaiheisen tunnistautumisen (MFA) pariin! MFA lisää ylimääräisen suojauskerroksen pelkän salasanan lisäksi.

Se edellyttää käyttäjiltä vähintään kahden eri varmennustekijän antamista henkilöllisyytensä todistamiseksi. Ajattele sitä niin, että oven avaamiseen tarvitaan useampi kuin yksi avain.

Miksi MFA on tärkeä

Nykyisessä digitaalisessa maailmassa pelkät salasanat eivät usein riitä. Tietomurrot ja tietojenkalasteluhyökkäykset voivat helposti vaarantaa yksivaiheisen tunnistautumisen.

MFA parantaa tietoturvaa merkittävästi vaikeuttamalla luvattomien käyttäjien pääsyä tileille, vaikka he olisivat varastaneet salasanan. Se on keskeinen suoja tunnistetietojen varastamista vastaan.

MFA:n varmennustekijät

MFA perustuu erilaisiin tunnistautumistekijöiden luokkiin:

  • Jotain, jonka tiedätte: Salasana, PIN-koodi tai turvakysymys.
  • Jotain, joka teillä on: Fyysinen tunniste, älypuhelin (sovelluspohjaisia koodeja varten) tai älykortti.
  • Jotain, mitä olette: Biometrinen tunniste, kuten sormenjälki, kasvojentunnistus tai äänentunnistus.

Vahva MFA-kokoonpano yhdistää tekijöitä vähintään kahdesta eri luokasta.

Spring Security ja MFA

Spring Security tarjoaa tehokkaan kehyksen tunnistautumiseen ja käyttöoikeuksien hallintaan. Vaikka siinä ei ole suoraan sisäänrakennettua MFA-moduulia, sitä voidaan laajentaa helposti.

Voimme integroida MFA:n mukauttamalla tunnistautumisprosessia. Tämä tarkoittaa yleensä mukautettujen suodattimien, tunnistautumisen tarjoajien ja käyttäjätietojen lisäämistä toisen tekijän käsittelyä varten.

Toisen tekijän valinta: TOTP

Yleinen ja laajasti käytetty toinen tekijä on Time-based One-Time Password (TOTP). Näitä ovat esimerkiksi Google Authenticatorin tai Authyn kaltaisten sovellusten luomat kuusinumeroiset koodit.

TOTP-koodit ovat voimassa lyhyen ajan (yleensä 30–60 sekuntia), ja ne perustuvat jaettuun salaiseen avaimeen sekä nykyiseen aikaan.

Käyttäjän rekisteröinti TOTP:tä varten

MFA-rekisteröintiprosessi on ratkaisevan tärkeä. Ensin sovellus luo kullekin käyttäjälle yksilöllisen salaisen avaimen.

Salainen avain näytetään sitten käyttäjälle usein QR-koodina, jonka hän skannaa tunnistautumissovelluksellaan. Sovellus tallentaa salaisen avaimen ja käyttää sitä aikaperusteisten koodien luomiseen.

MFA-salaisten avainten turvallinen tallentaminen

Luotu TOTP:n salainen avain on erittäin arkaluonteinen. Se on tallennettava turvallisesti sovelluksen tietokantaan.

Parhaan käytännön mukaan nämä salaiset avaimet salataan levossa. Älkää koskaan tallentako niitä tekstimuodossa! Jos salainen avain vaarantuu, hyökkääjä voi luoda kelvollisia TOTP-koodeja.

Mukautettu tunnistautumisen tarjoaja

Jotta TOTP-varmennus voidaan integroida Spring Securityyn, luotte yleensä mukautetun AuthenticationProvider-toteutuksen.

Tämä tarjoaja voidaan ketjuttaa käyttäjätunnuksen ja salasanan ensisijaisen tunnistautumisen jälkeen. Kun ensimmäinen tekijä on varmennettu, tarjoaja voi tarkistaa toisen tekijän eli TOTP-koodin.

Kirjautumisen tehostaminen MFA-suodattimella

Toinen keskeinen komponentti on mukautettu Spring Security -suodatin, joka yleensä laajentaa luokkaa OncePerRequestFilter.

Suodatin sieppaa pyynnöt ensisijaisen tunnistautumisen jälkeen mutta ennen täysien käyttöoikeuksien myöntämistä. Jos MFA on käytössä käyttäjällä, suodatin voi ohjata hänet erilliselle MFA-varmennussivulle syöttämään TOTP-koodinsa.

TOTP-varmennuslogiikan esimerkki

Tässä on yksinkertaistettu esimerkki, joka havainnollistaa TOTP-koodin varmennuksen perusidean. Oikeassa sovelluksessa aikaperusteisen laskennan hoitaisi erillinen kirjasto.

Kokeilkaa ohjelman suorittamista nähdäksenne, miten lähetettyä koodia käsitteellisesti verrataan odotettuun koodiin.

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;
  }
}

MFA:n pikatarkistus

Mikä seuraavista kuvaa monivaiheisen tunnistautumisen hallussapitoon perustuvaa tekijää?

MFA-oppitunnin yhteenveto

Hienoa työtä! Olette oppineet monivaiheisen tunnistautumisen perusteet ja sen toteuttamisen Spring Security -sovelluksessa.

  • MFA lisää keskeisiä suojauskerroksia.
  • Se perustuu johonkin, jonka tiedätte, joka teillä on tai mitä olette.
  • TOTP on suosittu ja tehokas toinen tekijä.
  • Spring Securityn laajennettavuus mahdollistaa mukautettujen suodattimien ja tarjoajien käytön MFA:n integrointiin.
  • MFA:n salaisten avainten turvallinen tallentaminen on ensiarvoisen tärkeää.

Seuraavaksi tutustumme siihen, miten sovellusta suojataan väärinkäytöltä nopeusrajoitusten avulla!

Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Monivaiheisen todennuksen toteuttaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Spring Security 6 ja JWT-todennus-oppimispolun 3 oppituntia, myös oppitunnin “Monivaiheisen todennuksen toteuttaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Spring Security 6 ja JWT-todennus-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Monivaiheisen todennuksen toteuttaminen”?

Lisää ylimääräinen suojauskerros MFA:n avulla ja edellytä käyttäjiltä useita varmennustapoja. Harjoittelet Spring Security 6 ja JWT-todennus-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Security 6 ja JWT-todennus-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Security 6 ja JWT-todennus-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Monivaiheisen todennuksen toteuttaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Security 6 ja JWT-todennus-oppitunnilla?

Kyllä. Jokainen Spring Security 6 ja JWT-todennus-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Monivaiheisen todennuksen toteuttaminen
  2. API-käytön nopeusrajoitus
  3. Mukautettujen todennustapahtumien käsittely
  4. Tilien lukitseminen ja raakavoimahyökkäysten torjunta
← Takaisin: Spring Security 6 ja JWT-todennus