OAuth2 och OpenID Connect på djupet · Lektion

Multifaktorautentisering (MFA)

Utforska hur MFA integreras med OIDC-flöden för att lägga till ett extra säkerhetslager i användarautentiseringen.

Lektion 3 av 411 steg

Multifaktorautentisering (MFA) är en gratis lektion i OAuth2 och OpenID Connect på djupet på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för OAuth2 och OpenID Connect på djupet, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.

Vad är multifaktorautentisering?

Multifaktorautentisering (MFA) lägger till ett extra säkerhetslager för användarkonton utöver lösenordet.

I stället för att förlita sig på en enda typ av bevis (som "något ni vet") kräver MFA två eller fler verifieringsmetoder från olika kategorier.

MFA:s "faktorer"

MFA kombinerar vanligtvis faktorer från följande kategorier:

  • Något ni vet: Ett lösenord eller en PIN-kod.
  • Något ni har: En telefon, hårdvarutoken eller autentiseringsapp.
  • Något ni är: Ett fingeravtryck, en ansiktsskanning eller röstigenkänning.

Flera faktorer gör det betydligt svårare för obehöriga användare att få åtkomst.

Varför MFA i OIDC?

OpenID Connect (OIDC) utför inte MFA. I stället fungerar det som ett säkert sätt för en Identity Provider (IdP) att informera er applikation om huruvida en användare autentiserade sig med MFA.

Er applikation kan sedan använda denna information för att fatta välgrundade auktoriseringsbeslut.

Introduktion till ACR-värden

I OIDC används "Authentication Context Class References" (ACR-värden) för att ange hur en användare autentiserades.

Detta är unika identifierare som representerar olika nivåer eller metoder för autentisering, inklusive om MFA användes.

Begära en specifik ACR-nivå

När er applikation initierar en OIDC-auktoriseringsbegäran kan den inkludera parametern acr_values.

Parametern talar om för Identity Provider att er applikation föredrar eller kräver en specifik autentiseringskontext, till exempel MFA.

Exempel: begära MFA

Här är ett förenklat exempel på en OIDC-auktoriserings-URL som begär en MFA-kontext. De specifika acr_values, till exempel "mfa" eller "https://acr.example.com/mfa", beror på Identity Providers konfiguration.

public class Main {
  public static void main(String[] args) {
    String authUrl = "https://idp.example.com/authorize?"
      + "response_type=code"
      + "&client_id=my_client_app"
      + "&redirect_uri=https://app.example.com/callback"
      + "&scope=openid%20profile"
      + "&acr_values=mfa";
    System.out.println("Authorization URL:\n" + authUrl);
  }
}

Ta emot MFA-status i ID-token

Efter en lyckad autentisering skickar Identity Provider en ID-token till er applikation. Denna token innehåller olika claims om användaren och dennes autentiseringssession.

Claimen acr i ID-token anger den faktiska Authentication Context Class Reference som uppfylldes.

Exempel: avkoda en ID-token med 'acr'

Föreställ er nyttolasten i en ID-token efter att en användare har autentiserat sig med MFA. Claimen acr skulle finnas där och bekräfta vilken autentiseringsmetod som användes.

I en verklig applikation skulle ni avkoda och validera JWT:n för att läsa denna claim.

public class Main {
  public static void main(String[] args) {
    // Example of a decoded ID Token payload
    // In a real app, you'd parse a JWT.
    String idTokenPayload = "{\n  \"iss\": \"https://idp.example.com\",\n  \"sub\": \"user123\",\n  \"aud\": \"my_client_app\",\n  \"exp\": 1678886400,\n  \"iat\": 1678882800,\n  \"auth_time\": 1678882700,\n  \"acr\": \"mfa\",\n  \"amr\": [\"pwd\", \"otp\"]\n}";
    System.out.println("Simulated ID Token Payload:\n" + idTokenPayload);
  }
}

Tillämpa MFA-baserade policyer

När er applikation har tagit emot och validerat ID-token kan den kontrollera claimen acr.

Utifrån detta kan ni implementera villkorade åtkomstpolicyer. Om en användare till exempel försöker få åtkomst till känsliga data och claimen acr inte anger MFA kan ni neka åtkomst eller begära ny autentisering.

Snabbkontroll

Vilken OIDC-parameter används av en klientapplikation för att begära att en användare autentiserar sig med multifaktorautentisering?

Sammanfattning: MFA och OIDC

Vi har lärt oss att MFA lägger till viktiga säkerhetslager genom att kräva flera autentiseringsfaktorer.

OIDC utför inte MFA självt, men tillhandahåller ett standardiserat sätt (via acr_values i begäranden och claimen acr i ID-token) för applikationer att begära och ta emot information om autentiseringskontexten. Detta möjliggör robusta säkerhetspolicyer som tar hänsyn till MFA.

Gratis att börja

Lär dig OAuth2 och OpenID Connect på djupet med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Multifaktorautentisering (MFA)” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen OAuth2 och OpenID Connect på djupet, inklusive ”Multifaktorautentisering (MFA)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i OAuth2 och OpenID Connect på djupet innehåller totalt 4 lektioner.

Vad lär jag mig i ”Multifaktorautentisering (MFA)”?

Utforska hur MFA integreras med OIDC-flöden för att lägga till ett extra säkerhetslager i användarautentiseringen. Ni övar på OAuth2 och OpenID Connect på djupet med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig OAuth2 och OpenID Connect på djupet?

Du behöver inga förkunskaper. Utbildningen i OAuth2 och OpenID Connect på djupet på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Multifaktorautentisering (MFA)”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här OAuth2 och OpenID Connect på djupet-lektionen?

Ja. Varje OAuth2 och OpenID Connect på djupet-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Integrering med identitetsleverantörer
  2. Säkerhet för mikrotjänster och API Gateway
  3. Multifaktorautentisering (MFA)
  4. Single Sign-On mellan applikationer
← Tillbaka till OAuth2 och OpenID Connect på djupet