Almindelige OAuth2 grant-typer
Udforsk forskellige grant-typer som Authorization Code og Client Credentials samt deres relevante anvendelsesområder.
Almindelige OAuth2 grant-typer er en gratis Spring Security 6 og JWT-godkendelse-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 Spring Security 6 og JWT-godkendelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.
Hvad er OAuth2-bevillingstyper?
Velkommen! I OAuth2 er en bevillingstype (eller "Authorization Grant") en metode, som en applikation bruger til at hente et adgangstoken fra en autorisationsserver.
Du kan se det som den specifikke procedure eller forhandlingsprotokol til at få tilladelse til at få adgang til beskyttede ressourcer.
Hvorfor findes der forskellige bevillingstyper?
Du undrer dig måske over, hvorfor der ikke bare findes én måde at hente et token på. Forskellige applikationer har forskellige sikkerhedsbehov og muligheder:
- Webapplikationer med en backend
- Single-page-applikationer (SPA'er) i en browser
- Mobilapplikationer
- Kommandolinjeværktøjer
- Kommunikation fra server til server
Hvert scenarie kræver en tilpasset og sikker tilgang.
Bevilling med autorisationskode
Bevilling med autorisationskode er den mest almindelige og anbefalede bevillingstype for fortrolige klienter, især traditionelle webapplikationer med en backend.
Den betragtes som den sikreste, fordi adgangstokenet aldrig eksponeres direkte i brugerens browser.
Flow med autorisationskode: Brugergodkendelse
Sådan begynder flowet med autorisationskode typisk:
- Brugeren klikker på 'Login with X' i din app.
- Din app omdirigerer brugerens browser til autorisationsserveren (f.eks. Google eller GitHub).
- Brugeren logger ind og giver din app tilladelse.
- Autorisationsserveren omdirigerer derefter brugerens browser tilbage til din app med en midlertidig autorisationskode.
Flow med autorisationskode: Tokenudveksling
Efter modtagelse af autorisationskoden:
- Din apps backend modtager autorisationskoden.
- Den udveksler derefter koden sikkert (sammen med dens eget klient-id og klienthemmelighed) direkte med autorisationsserverens tokenendepunkt. Dette er kommunikation fra server til server.
- Autorisationsserveren validerer koden og klientoplysningerne og udsteder derefter et adgangstoken (og ofte et fornyelsestoken).
Bevilling med klientoplysninger
Bevilling med klientoplysninger bruges til maskine-til-maskine-kommunikation, hvor der ikke er nogen slutbruger involveret.
Klienten (din applikation eller tjeneste) handler på egne vegne og godkender sig selv direkte over for autorisationsserveren for at få et adgangstoken.
Flow med klientoplysninger
Flowet for klientoplysninger er enklere:
- Din klientapplikation (f.eks. en baggrundstjeneste) sender sit klient-id og sin klienthemmelighed direkte til autorisationsserverens tokenendepunkt.
- Autorisationsserveren bekræfter disse oplysninger.
- Hvis de er gyldige, udsteder autorisationsserveren direkte et adgangstoken til din klient.
Der kræves ingen brugerhandling eller omdirigeringer i browseren.
Klientoplysninger i praksis
Forestil dig en backend-tjeneste, der skal forespørge en ekstern API for at hente data. Den har ikke brug for, at en bruger logger ind; den skal blot have adgang som "sig selv".
Den kan bruge flowet med klientoplysninger til at hente et adgangstoken:
curl -X POST -u "my-client-id:my-client-secret" \
"https://auth.example.com/oauth/token" \
-d "grant_type=client_credentials"Bevilling med enhedskode
Bevilling med enhedskode er designet til enheder med begrænsede inputmuligheder, f.eks. smart-tv'er, IoT-enheder eller kommandolinjeværktøjer, som ikke nemt kan være vært for en webbrowser eller modtage omdirigeringer.
Den adskiller autorisationsprocessen, så brugeren kan godkende enheden på en separat og mere avanceret enhed (f.eks. en smartphone eller computer).
Flow med enhedskode
Her er et forenklet flow med enhedskode:
- Enheden anmoder om en enhedskode og en URI til brugerverifikation fra autorisationsserveren.
- Enheden viser URI'en og en kort kode til brugeren.
- Brugeren går til URI'en på sin telefon eller pc, logger ind og indtaster koden for at give adgang.
- Imens foretager enheden gentagne forespørgsler til autorisationsserveren, indtil autorisationen er bekræftet, hvorefter den modtager adgangstokenet.
Udfordring om bevillingstype
Hvilken OAuth2-bevillingstype er ifølge det, du har lært, bedst egnet til en backend-tjeneste, der skal have adgang til en anden API uden brugerindblanding?
Opsummering: Fokus på bevillingstyper
Vi har gennemgået de vigtigste OAuth2-bevillingstyper: Authorization Code til sikre webapplikationer med brugerindblanding, Client Credentials til kommunikation fra server til server og Device Code til enheder med begrænsede inputmuligheder.
Hver bevillingstype imødekommer bestemte sikkerheds- og brugervenlighedsbehov og sikrer sikre autorisationsflows til forskellige applikationsscenarier.
Lær Java 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 “Almindelige OAuth2 grant-typer” gratis?
Ja — alle 3 lektioner i læringssporet Spring Security 6 og JWT-godkendelse, inklusive “Almindelige OAuth2 grant-typer”, 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. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Almindelige OAuth2 grant-typer”?
Udforsk forskellige grant-typer som Authorization Code og Client Credentials samt deres relevante anvendelsesområder. Du øver dig i Spring Security 6 og JWT-godkendelse 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å Spring Security 6 og JWT-godkendelse?
Der kræves ingen tidligere erfaring. Spring Security 6 og JWT-godkendelse 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 “Almindelige OAuth2 grant-typer”?
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 Spring Security 6 og JWT-godkendelse-lektion?
Ja. Alle Spring Security 6 og JWT-godkendelse-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
- Oversigt over OAuth2-protokollen
- Introduktion til OpenID Connect
- Almindelige OAuth2 grant-typer
- PKCE og sikring af public clients