Authorization Code Flow med OIDC
Implementer den sikre Authorization Code Flow, som nå er utvidet med OIDC for å returnere en ID Token sammen med access token.
Authorization Code Flow med OIDC er en gratis leksjon i OAuth2 og OpenID Connect i dybden på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i OAuth2 og OpenID Connect i dybden, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i OAuth2 og OpenID Connect i dybden inneholder totalt 4 leksjoner.
Introduksjon til OIDC og Authorization Code Flow
Velkommen! I denne leksjonen kombinerer vi den sikre Authorization Code Flow fra OAuth2 med OpenID Connect (OIDC). Dette gjør at en applikasjon ikke bare kan få tillatelse til å få tilgang til ressurser (OAuth2), men også bekrefte brukerens identitet (OIDC).
Tenk på det som å få både en nøkkel til et pengeskap og et gyldig ID-kort for personen som holder nøkkelen, på én gang!
Be om identitet med OIDC
Når De bruker Authorization Code Flow med OIDC, begynner applikasjonen (klienten) med å sende en autorisasjonsforespørsel til Authorization Server. Denne forespørselen ligner på OAuth2, men inneholder bestemte OIDC-parametere.
response_type=code: Angir at vi ønsker en Authorization Code.scope=openid ...: Inneholder avgjørende nokopenid-scopet for å angi at dette er en OIDC-forespørsel.nonce: En unik streng som forhindrer replay-angrep (valgfri, men anbefalt).
Det viktige `openid`-scopet
openid-scopet er det magiske flagget som forteller Authorization Server at De utfører en OpenID Connect-forespørsel, ikke bare en vanlig OAuth2-forespørsel.
Hvis openid ikke finnes i forespørselens scope, behandler Authorization Server den som en vanlig OAuth2-flyt og utsteder ikke et ID-token.
De kan kombinere openid med andre standard OAuth2-scopes, for eksempel profile, email eller egendefinerte scopes.
Utover `openid`: Flere scopes
Selv om openid er obligatorisk, kan andre OIDC-spesifikke scopes brukes til å be om mer informasjon om brukeren:
profile: Tilgang til standard claims for profilen (navn, etternavn, kjønn, bilde og så videre).email: Tilgang til brukerens e-postadresse og bekreftelsesstatus.address: Tilgang til brukerens postadresse.phone: Tilgang til brukerens telefonnummer og bekreftelsesstatus.
Disse claimene inkluderes deretter i ID-tokenet eller er tilgjengelige via UserInfo Endpoint.
Brukersamtykke og kodeutstedelse
Etter at applikasjonen har sendt autorisasjonsforespørselen, omdirigeres brukeren til Authorization Server. Brukeren logger inn ved behov og blir bedt om å samtykke til scopene applikasjonen har bedt om.
Hvis brukeren godkjenner, omdirigerer Authorization Server brukeren tilbake til applikasjonens registrerte redirect URI, med Authorization Code inkludert i URL-ens spørringsparametere.
Tokenutvekslingen
Nå tar applikasjonen, som kjører på en server for konfidensielle klienter, den mottatte Authorization Code og utveksler den direkte med Authorization Servers token endpoint.
Dette er en back-channel-forespørsel, noe som betyr at den skjer direkte mellom serveren Deres og Authorization Server, ikke gjennom brukerens nettleser.
Det er viktig at denne utvekslingen nå returnerer tre viktige opplysninger:
- Access Token
- Refresh Token (hvis forespurt)
- ID Token
Hva er ID-tokenet?
ID-tokenet er et JSON Web Token (JWT) som inneholder claims om den autentiserte brukeren. Det er signert av Authorization Server, slik at applikasjonen kan bekrefte at det er ekte.
I motsetning til Access Token, som brukes for tilgang til ressurser, er ID-tokenet spesielt beregnet på identitetsbekreftelse. Det forteller applikasjonen *hvem* brukeren er, ikke *hva* brukeren kan gjøre.
ID-token for identitet, Access Token for API-et
Når applikasjonen mottar tokenene:
- ID Token: De kan dekode og validere ID-tokenet for å bekrefte brukerens identitet og hente grunnleggende profilinformasjon (claims). Dette brukes ofte til innloggede brukersesjoner.
- Access Token: Dette tokenet brukes deretter til å sende forespørsler til beskyttede Resource Servers (API-er) på vegne av brukeren, og gir tilgang til bestemte ressurser basert på scopene det er bedt om.
OIDC Authorization Code Flow i praksis
Her ser De en forenklet, konseptuell gjennomgang av tokenutvekslingen på serversiden. I en virkelig applikasjon ville De brukt et OIDC-klientbibliotek.
public class OidcClientExample {
public static void main(String[] args) {
// 1. User is redirected to Auth Server
// Example URL:
// https://auth.example.com/oauth/authorize?
// response_type=code&
// client_id=my_app_id&
// scope=openid%20profile%20email&
// redirect_uri=https://my-app.com/callback&
// nonce=random_string
// 2. User grants consent, redirected back with code
String authCode = "some_long_authorization_code"; // From redirect URI
// 3. Exchange code for tokens (server-side POST request)
System.out.println("Exchanging Authorization Code for tokens...");
// This part would typically be handled by an HTTP client
// sending a POST request to the token endpoint.
// The response would contain:
// {
// "access_token": "...",
// "token_type": "Bearer",
// "expires_in": 3600,
// "refresh_token": "...",
// "id_token": "..." // The OIDC addition!
// }
System.out.println("Received Access Token, Refresh Token, and ID Token!");
System.out.println("ID Token contains user identity claims.");
}
}Sjekk av OIDC Authorization Code Flow
Tenk på en applikasjon som implementerer OpenID Connect Authorization Code Flow.
Hvilken av følgende parametere er nødvendig i den første autorisasjonsforespørselen for å sikre at et ID-token returneres?
Oppsummering av OIDC Authorization Code Flow
Godt jobbet! De har lært hvordan den sikre Authorization Code Flow utvides med OpenID Connect for å tilby både autorisasjon og identitet.
- Vi bruker
response_type=codeog inkludereropenid-scopet. - Authorization Server returnerer en Authorization Code.
- Denne koden utveksles mot et Access Token (for tilgang til ressurser) og et ID Token (for brukerens identitet).
- ID-tokenet er et JWT som inneholder brukerclaims og er signert av Authorization Server.
Denne flyten anbefales sterkt for konfidensielle klienter, for eksempel nettapplikasjoner.
Lær deg OAuth2 og OpenID Connect i dybden med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Authorization Code Flow med OIDC» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien OAuth2 og OpenID Connect i dybden, inkludert «Authorization Code Flow med OIDC», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i OAuth2 og OpenID Connect i dybden inneholder totalt 4 leksjoner.
Hva lærer jeg i «Authorization Code Flow med OIDC»?
Implementer den sikre Authorization Code Flow, som nå er utvidet med OIDC for å returnere en ID Token sammen med access token. Du øver på OAuth2 og OpenID Connect i dybden med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med OAuth2 og OpenID Connect i dybden?
Ingen tidligere erfaring er nødvendig. OAuth2 og OpenID Connect i dybden på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Authorization Code Flow med OIDC»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne OAuth2 og OpenID Connect i dybden-leksjonen?
Ja. Alle OAuth2 og OpenID Connect i dybden-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Authorization Code Flow med OIDC
- Implicit Flow med OIDC
- Hybrid Flow med OIDC
- Bruk av nonce for å hindre replay