OAuth2 og OpenID Connect i dybden · Lektion

Oversigt over OIDC-flows

Få en introduktion til de forskellige OIDC-flows: Authorization Code, Implicit og Hybrid, og lær, hvornår hvert af dem bør bruges.

Lektion 3 af 411 trin

Oversigt over OIDC-flows er en gratis OAuth2 og OpenID Connect i dybden-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i OAuth2 og OpenID Connect i dybden, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. OAuth2 og OpenID Connect i dybden-kurset indeholder 4 lektioner i alt.

Velkommen til OIDC-forløb!

I denne lektion udforsker vi de vigtigste forløb (eller tilskudstyper), der bruges i OpenID Connect (OIDC). Disse forløb definerer, hvordan din applikation (Client) interagerer med en OpenID-udbyder (for eksempel Google eller Auth0) for at hente identitetsoplysninger om en bruger.

OIDC bygger direkte oven på OAuth2, så disse forløb vil virke bekendte, hvis du har studeret OAuth2-tilskudstyper.

OIDC's grundlag: OAuth2-forløb

Husk, at OIDC er et identitetslag, der er bygget oven på OAuth2. Det betyder, at OIDC genbruger OAuth2's autoriseringsforløb, men med en vigtig tilføjelse: ID Token.

  • ID Token: Et JSON Web Token (JWT), der indeholder oplysninger (claims) om den autentificerede bruger.
  • Valget af forløb afgør, hvordan dette ID Token (og et Access Token) leveres til din klientapplikation.

1. Autoriseringskodeforløb (OIDC)

Dette er det mest sikre og anbefalede forløb til OIDC, især for webapplikationer med en backend (fortrolige klienter).

  • Sådan fungerer det: Klienten udveksler en autoriseringskode for tokens (ID Token og Access Token) direkte med OpenID-udbyderens token-slutpunkt.
  • Denne udveksling foregår via en sikker forbindelse mellem servere (back-channel).

Autoriseringskodeforløb: Hvorfor er det bedst?

Autoriseringskodeforløbet foretrækkes, fordi tokens aldrig eksponeres i brugerens browser eller URL.

  • Sikkerhed: Tokens udveksles direkte mellem servere, hvilket mindsker risikoen for opsnapning.
  • Klienttype: Ideelt til webapplikationer med en backend.
  • PKCE: Kombineres ofte med Proof Key for Code Exchange (PKCE) til offentlige klienter (for eksempel mobilapplikationer) for at forhindre opsnapning af koden.

2. Implicit-forløb (OIDC)

Implicit-forløbet leverer tokens direkte til klienten via browserens URL-fragment efter brugerens autentifikation. Det blev tidligere brugt til enkeltsidesapplikationer (SPA'er).

Vigtigt: På grund af sikkerhedsproblemer, såsom lækage af tokens via browserhistorik eller henvisningsheadere, er Implicit-forløbet i vid udstrækning forældet ifølge OAuth2.0- og OIDC-specifikationerne.

Implicit-forløb: Hvorfor forældet?

Selv om det er enklere at implementere til browserbaserede applikationer, er dets sikkerhedsmæssige ulemper betydelige:

  • Ingen kodeudveksling: Tokens tildeles direkte uden en sikker udveksling via back-channel.
  • Eksponering via front-channel: Tokens vises i browserens URL, hvilket gør dem sårbare.
  • Ingen fornyelsestokens: Dette forløb udsteder typisk ikke fornyelsestokens, så brugeren skal autentificeres igen.

Moderne SPA'er bør i stedet bruge Autoriseringskodeforløbet med PKCE.

3. Hybridforløb (OIDC)

Hybridforløbet kombinerer elementer fra både Autoriseringskodeforløbet og Implicit-forløbet. Det giver klienten mulighed for at modtage nogle tokens via front-channel (browseren) og andre via back-channel (server til server).

  • For eksempel kan et ID Token returneres direkte i URL'en, mens et Access Token hentes via en kodeudveksling.

Hybridforløb: Fleksibilitet og afvejninger

Dette flow giver fleksibilitet, men medfører øget kompleksitet og mulige sikkerhedsmæssige kompromiser, afhængigt af hvilke tokens der leveres via frontkanalen.

  • Anvendelsesområder: Kan bruges, når en klient har brug for øjeblikkelig adgang til et ID-token (f.eks. til opdatering af brugergrænsefladen), men vil hente adgangstokenet på en mere sikker måde.
  • Overvejelser: Vurder nøje sikkerhedskonsekvenserne ved tokens, der returneres direkte til browseren.

Valg af det rigtige OIDC-flow

Når du vælger et OIDC-flow til din applikation, skal du altid prioritere sikkerheden:

  • Webapps (fortrolige klienter): Brug Authorization Code-flowet med PKCE.
  • Mobilapps/desktopapps (offentlige klienter): Brug Authorization Code-flowet med PKCE.
  • SPA'er (offentlige klienter): Brug Authorization Code-flowet med PKCE.
  • Implicit-flowet: Undgå at bruge det til nye applikationer på grund af sikkerhedsrisici.
  • Hybrid-flowet: Brug det med forsigtighed og en klar forståelse af dets sikkerhedsmæssige konsekvenser.

Hurtig test af flows

Hvilke af følgende udsagn om OpenID Connect (OIDC)-flows er SANDE?

OIDC-flows: Opsamling og næste trin

Du har nu fået et overblik over de vigtigste OIDC-flows:

  • Authorization Code-flowet: Det mest sikre flow, som anbefales til de fleste applikationer, især sammen med PKCE.
  • Implicit-flowet: I vid udstrækning forældet på grund af sikkerhedsproblemer.
  • Hybrid-flowet: En fleksibel, men mere kompleks mulighed, der kombinerer elementer fra begge.

Det er afgørende at forstå disse flows for at kunne implementere sikre identitetsløsninger. Nu går vi i dybden med implementeringen af specifikke OIDC-flows.

Gratis at komme i gang

Lær OAuth2 og OpenID Connect i dybden med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Oversigt over OIDC-flows” gratis?

Ja — alle 3 lektioner i læringssporet OAuth2 og OpenID Connect i dybden, inklusive “Oversigt over OIDC-flows”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. OAuth2 og OpenID Connect i dybden-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Oversigt over OIDC-flows”?

Få en introduktion til de forskellige OIDC-flows: Authorization Code, Implicit og Hybrid, og lær, hvornår hvert af dem bør bruges. Du øver dig i OAuth2 og OpenID Connect i dybden med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på OAuth2 og OpenID Connect i dybden?

Der kræves ingen tidligere erfaring. OAuth2 og OpenID Connect i dybden på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Oversigt over OIDC-flows”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne OAuth2 og OpenID Connect i dybden-lektion?

Ja. Alle OAuth2 og OpenID Connect i dybden-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. OIDC: Identitetslag oven på OAuth2
  2. ID tokens og claims
  3. Oversigt over OIDC-flows
  4. UserInfo-endpointet
← Tilbage til OAuth2 og OpenID Connect i dybden