Förstå Redirect URI och Authorizationskodflöde i OpenID Connect (OIDC)
Låt oss ta en närmare titt på redirect-URI eftersom den är en kritisk säkerhetskomponent i OIDC-autentiseringsprocessen.
Vad är en Redirect URI?
En Redirect URI, även känd som en svar-URL, är en kritisk säkerhetskomponent i OIDC-autentiseringsprocessen. Den specificerar URL:en dit användare skickas efter att ha loggat in framgångsrikt via en OIDC-leverantör. Viktigare ännu, det är där din applikation tar emot authorizationskoden som behövs för att erhålla tokens.
Kolla in Redirect URI wiki för mer information.
Vad är Authorizationskodflödet?
Authorizationskodflödet (definierat i OAuth 2.0 RFC 6749, sektion 4.1) är en grundläggande autentiseringsmetod i OIDC. Det innebär ett utbyte av en authorizationskod för en åtkomsttoken och, valfritt, en uppfriskningstoken. Detta flöde är lämpligt för applikationer som kan hålla en klienthemlighet säker, såsom webbapplikationer på serversidan.
Kolla in Authorization Code Flow wiki för mer information.
Hur fungerar Redirect URI i Authorizationskodflödet?
I Authorizationskodflödet är Redirect URI det mål dit OIDC-leverantören skickar authorizationskoden efter att användaren har autentiserats framgångsrikt. Den måste vara förregistrerad hos OIDC-leverantören för att säkerställa säkerhet och förhindra obehöriga omdirigeringar.
Så här kan du registrera en Redirect URI i Logto Console:
När inloggningen påbörjas:
- Autorizationsbegäran: Din applikation dirigerar användaren till OIDCs leverantörens autorisationens slutpunkt, inklusive parametrar som
client_id
,response_type
,scope
ochredirect_uri
. - Användarautentisering: Användaren autentiserar sig hos OIDC-leverantören.
- Leverans av authorizationskod: Vid lyckad autentisering omdirigerar OIDC-leverantören användaren till den specificerade
redirect_uri
, inklusive en authorizationskod som en förfrågningsparameter.
OIDC-leverantören validerar redirect_uri
mot listan över förregistrerade URId. Om det finns ett felmatch, kommer ett invalid_redirect_uri
-fel att returneras, vilket förbättrar säkerheten genom att förhindra obehöriga slutanvändningspunkter från att ta emot tokens.
Bästa praktiker för Redirect URIs
I verkliga fall är en vanlig bästa praxis att deklarera en dedikerad "Återkopplings"-sida och associera en router / djup länk som tillåter direkt åtkomst från extern. Denna länk bör användas som redirect-URI.
Om vi antar att du har en en-sides webbapp som körs på https://my-app.com
, då skulle vanligtvis redirect-URI deklareras som https://my-app.com/callback
Eller om det är en inbyggd mobilapp, börjar redirect-URI vanligen med ett anpassat schema, t.ex. com.company://myapp/callback
Andra bästa metoder inkluderar:
- Undvik generella tecken: Använd inte generiska mönster i redirect-URId. Lista explicit alla tillåtna URId för att förhindra obehörig åtkomst.
- Stäm överens exakt: Säkerställ att redirect-URI stämmer exakt med den registrerade hos OIDC-leverantören. Till och med ett snedstreck i slutet kan orsaka felmatch.
Hantera inloggningsåterkoppling
För att hantera authorizationskoden som returneras till din redirect_uri
, följ dessa steg:
-
Extrahera authorizationskoden: Hämta kodparametern från frågesträngen för redirect-URI.
-
Byt ut authorizationskoden mot tokens: Sammansätt en POST-förfrågan till OIDC-leverantörens token slutpunkt, inklusive:
client_id
: ID:t för din applikation hos OIDC-leverantörencode
: Authorizationskoden som mottagits från redirect-URIcode_verifier
: En slumpmässig sträng genererad hos klientenredirect_uri
: Samma URI använd i autorizationsbegärangrant_type
: Typen av beviljande, vanligtvisauthorization_code
Exempel på tokenutbytesförfrågan i JavaScript
Förenkla kodutbytesprocessen i Logto genom att använda Logto SDKs
Logto SDKs är utvecklingspaket skrivna i ett specifikt programmeringsspråk eller ramverk, t.ex. Logto React SDK, Next.js SDK och Swift SDK. Att använda ett SDK kan kraftigt förenkla saker genom att bara anropa en eller två funktioner.
Här är ett React "Återkoppling"-komponentexempel med Logto officiella React SDK:
Integrationsguider för SDK kan hittas i Logto quick-starts docs.
Sammanfattning: varför det är viktigt att behärska Redirect URIs i OIDC
Att förstå Redirect URIs i OIDC med authorizationskodflödet är avgörande för att säkra och optimera dina autentiseringsprocesser. Genom att registrera betrodda redirect URIs och hantera inloggningsåterkopplingar effektivt kan du säkerställa en sömlös och säker upplevelse för dina användare och samtidigt förenkla dina utvecklingsinsatser med Logto SDKs.