Implicit Flow og udfasning
Forstå, hvordan Implicit Flow fungerer, og hvorfor det i vid udstrækning er udfaset til fordel for mere sikre alternativer.
Implicit Flow og udfasning 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.
Hvad er Implicit-flowet?
Velkommen til en gennemgang af Implicit-flowet, en ældre OAuth2-autorisationstildelingstype. Det var tidligere populært til bestemte typer applikationer, men er nu i vid udstrækning udfaset på grund af sikkerhedsproblemer.
Det er vigtigt at forstå, hvordan det fungerer, for at kunne se, hvorfor mere sikre alternativer nu foretrækkes.
Direkte levering af token
I modsætning til andre flows, hvor en autorisationskode udveksles for et token, leverer Implicit-flowet adgangstokenet direkte til klienten.
Det sker umiddelbart efter, at brugeren har givet tilladelse, uden et mellemliggende trin eller en interaktion på serversiden for at hente tokenet.
Sådan fungerer det: Grundlæggende trin
Implicit-flowet involverer færre trin end Authorization Code-flowet:
- Klienten omdirigerer brugerens browser til autorisationserveren.
- Brugeren autentificerer sig og giver tilladelse.
- Autorisationserveren omdirigerer brugerens browser tilbage til klienten og indlejrer adgangstokenet direkte i URL-fragmentet.
- Scriptet på klientsiden udtrækker tokenet fra URL'en.
Token i URL-fragmentet
Den vigtigste egenskab er tokenets placering. Det føjes til omdirigerings-URL'en som en fragmentidentifikator (efter et #-symbol).
Det betyder, at tokenet udelukkende håndteres af browseren og aldrig sendes til klientens webserver, hvilket blev betragtet som en sikkerhedsfunktion for offentlige klienter.
https://client.example.com/callback#
access_token=YOUR_ACCESS_TOKEN
&token_type=Bearer
&expires_in=3600
&state=xyzDesignet til offentlige klienter
Implicit-flowet blev primært designet til offentlige klienter. Det er applikationer, der ikke kan opbevare en klienthemmelighed sikkert, f.eks.:
- Single-Page Applications (SPA'er), der kører i en browser
- Native mobilapplikationer
Uden en backendserver til at udveksle en autorisationskode virkede direkte levering af tokenet enklere.
Sikkerhedsproblem: Eksponering i URL'en
En væsentlig ulempe er, at adgangstokenet vises i browserens URL. Det gør tokenet sårbart over for:
- Browserhistorik: Det gemmes i brugerens browserhistorik.
- Referer-headere: Det kan potentielt lækkes til tredjepartswebsteder via referer-headere.
- Serverlogge: Hvis URL'en logges af en proxy eller server, kan tokenet blive eksponeret.
Det er en betydelig sikkerhedsrisiko!
Sikkerhedsproblem: Ingen klientautentificering
Med Implicit-flowet autentificerer klientapplikationen sig ikke selv over for autorisationserveren.
Det betyder, at autorisationserveren ikke kan bekræfte identiteten på den klient, der anmoder om tokenet, hvilket kan føre til sårbarheder som:
- Uautoriserede klienter, der udgiver sig for at være legitime klienter.
- Vanskeligheder med at tilbagekalde adgang for bestemte kompromitterede klienter.
Sikkerhedsproblem: CSRF-risiko
Implicit-flowet er uden passende afhjælpning mere udsat for Cross-Site Request Forgery (CSRF)-angreb.
En angriber kan narre en bruger til at autorisere en applikation, som brugeren ikke havde til hensigt at autorisere, og adgangstokenet ville blive leveret direkte til den omdirigerings-URL, som angriberen kontrollerer.
state-parameteren hjælper, men den direkte levering af tokenet øger angrebsfladen.
Hvorfor det er udfaset
På grund af disse iboende sikkerhedsproblemer fraråder dokumentet OAuth 2.0 Security Best Current Practice brugen af Implicit-flowet.
Det erstattes af mere robuste og sikre alternativer, primært Authorization Code-flowet med PKCE (Proof Key for Code Exchange).
PKCE løser specifikt problemet med offentlige klienter ved at tilføje et lag kryptografisk beskyttelse.
Tjek af Implicit-flowet
Hvorfor er Implicit-flowet i vid udstrækning udfaset, når man tager sikkerhedsproblemerne i betragtning?
Opsummering af Implicit-flowet
Du har lært, at Implicit-flowet var en OAuth2-tildelingstype til offentlige klienter, hvor adgangstokens blev leveret direkte i URL-fragmentet.
Enkeltheden havde dog en høj pris i form af betydelige sikkerhedsrisici, især eksponering af tokens og manglende klientautentificering.
Moderne bedste praksis anbefaler på det kraftigste Authorization Code-flowet med PKCE som et sikkert alternativ for offentlige klienter.
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 “Implicit Flow og udfasning” gratis?
Ja — alle 3 lektioner i læringssporet OAuth2 og OpenID Connect i dybden, inklusive “Implicit Flow og udfasning”, 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 “Implicit Flow og udfasning”?
Forstå, hvordan Implicit Flow fungerer, og hvorfor det i vid udstrækning er udfaset til fordel for mere sikre alternativer. 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 “Implicit Flow og udfasning”?
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
- Authorization Code Flow
- Client Credentials Flow
- Implicit Flow og udfasning
- Device Authorization Grant