OAuth2 og OpenID Connect i dybden · Lektion

Authorization Code Flow

Bliv fortrolig med det sikreste og mest udbredte flow, som er velegnet til confidential clients såsom webserverapplikationer.

Lektion 1 af 412 trin

Authorization Code Flow er en gratis OAuth2 og OpenID Connect i dybden-lektion på CoddyKit. Dette er lektion 1 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.

Autorisationskodeflow: Den sikre standard

Velkommen til lektionen om autorisationskodeflowet! Dette er det sikreste og mest udbredte OAuth2-flow, især til webapplikationer.

Det er udviklet til at beskytte følsomme legitimationsoplysninger og er det oplagte valg for klienter, der kan opbevare en hemmelighed, også kaldet fortrolige klienter.

Hvorfor fortrolige klienter?

En fortrolig klient er en applikation, f.eks. en traditionel webserverapp, der kan opbevare en hemmelighed sikkert, f.eks. en client_secret.

Dette flow er baseret på en sikker, direkte kommunikationskanal mellem din applikations backend og autorisationsserveren, så følsomme tokens holdes væk fra brugerens browser.

De fire roller i praksis

Husk de fire vigtigste roller i OAuth2:

  • Ressourceejer: Brugeren, der giver adgang.
  • Klient: Din applikation, der anmoder om adgang.
  • Autorisationsserver: Verificerer identitet og udsteder tokens.
  • Ressourceserver: Opbevarer de beskyttede data.

I dette flow interagerer de i en bestemt proces med flere trin.

Trin 1: Anmodning om autorisation

Det hele begynder, når ressourceejeren (brugeren) vil logge ind eller give din klient-applikation adgang.

Din applikation omdirigerer brugerens browser til autorisationsserverens autorisationsendepunkt og medsender flere parametre:

  • response_type=code (afgørende!)
  • client_id (din apps ID)
  • redirect_uri (hvor brugeren skal sendes tilbage)
  • scope (de ønskede tilladelser)
  • state (af sikkerhedsmæssige årsager, forklaret senere)

Trin 2: Brugeren giver samtykke

Når brugeren er blevet omdirigeret til autorisationsserveren, ser vedkommende en samtykkeskærm.

På skærmen bliver brugeren spurgt, om vedkommende vil give din klient-applikation de ønskede tilladelser, som er defineret af scope.

Brugeren kan derefter vælge at godkende eller afvise anmodningen.

Trin 3: Levering af autorisationskoden

Hvis brugeren godkender, omdirigerer autorisationsserveren brugerens browser tilbage til den redirect_uri, du angav i trin 1.

Denne omdirigerings-URL indeholder nu en autorisationskode, der kun kan bruges én gang, samt den state-parameter, du sendte, f.eks.:

https://your-app.com/callback?code=AUTH_CODE_HERE&state=RANDOM_STRING

Denne kode er kortlivet og giver ikke direkte adgang til ressourcer.

Trin 4: Udveksling af kode til tokens

Det er her, magien sker! Din klient-applikations backend på serversiden modtager autorisationskoden.

Derefter sender den en direkte HTTP POST-anmodning via en bagkanal til autorisationsserverens tokenendepunkt.

Anmodningen indeholder code, redirect_uri, client_id og, ikke mindst, din client_secret, så din applikation kan autentificeres.

Trin 5: Tokens udstedes

Autorisationsserveren validerer anmodningen, især client_secret og code.

Hvis alt er gyldigt, udsteder den et adgangstoken og eventuelt et refresh-token til din klient-applikations backend.

Din applikation kan nu bruge adgangstokenet til at sende anmodninger til ressourceserveren på brugerens vegne.

Beskyttelse mod CSRF med `state`

state-parameteren er en vigtig sikkerhedsforanstaltning mod Cross-Site Request Forgery-angreb (CSRF).

Din klient bør generere en unik, kryptografisk tilfældig streng for hver autorisationsanmodning og medtage den som state-parameter.

Når autorisationsserveren omdirigerer tilbage, medtager den den samme state. Din klient skal derefter kontrollere, at den returnerede state stemmer overens med den, den sendte, så det sikres, at callbacken er legitim.

Ideelle anvendelser

Autorisationskodeflowet egner sig bedst til:

  • Fortrolige klienter: Især webserverapplikationer.
  • Klienter med en backend: Hvor client_secret kan opbevares og bruges sikkert.
  • Offentlige klienter med PKCE: Mobilapps og SPA'er kan bruge det med en udvidelse kaldet PKCE for øget sikkerhed.

Det er det mest robuste valg, når sikkerhed er afgørende.

Kontrolpunkt for flowet

Overvej trinnene i autorisationskodeflowet. Hvilke af disse parametre sendes typisk af klienten til autorisationsserverens tokenendepunkt under tokenudvekslingen?

Opsummering: Autorisationskodeflow

Du har nu styr på autorisationskodeflowet!

  • Det er det sikreste OAuth2-flow.
  • Det er ideelt til fortrolige klienter (apps på serversiden).
  • Det bruger en midlertidig autorisationskode, som udveksles til tokens.
  • Tokenudvekslingen sker sikkert via en bagkanal (server til server).
  • state-parameteren beskytter mod CSRF.

Dette flow danner grundlaget for mange sikre systemer til autentificering og autorisation.

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 “Authorization Code Flow” gratis?

Ja — alle 3 lektioner i læringssporet OAuth2 og OpenID Connect i dybden, inklusive “Authorization Code Flow”, 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 “Authorization Code Flow”?

Bliv fortrolig med det sikreste og mest udbredte flow, som er velegnet til confidential clients såsom webserverapplikationer. 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 1 af 4.

Hvor lang tid tager lektionen “Authorization Code Flow”?

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. Authorization Code Flow
  2. Client Credentials Flow
  3. Implicit Flow og udfasning
  4. Device Authorization Grant
← Tilbage til OAuth2 og OpenID Connect i dybden