• redirect-uri
  • allback
  • auktorisationskod
  • kodflöde
  • oidc
  • pkce

Förstå omdirigerings-URI och auktorisationskodflöde i OpenID Connect (OIDC)

Låt oss ta en närmare titt på omdirigerings-URI eftersom det är en kritisk säkerhetskomponent i OIDC-autentiseringsprocessen.

Charles
Charles
Developer

Vad är en omdirigerings-URI?

En omdirigerings-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. Ännu viktigare, det är där din applikation får auktorisationskoden som behövs för att erhålla tokens.

Kolla in Auth Wiki > Redirect URI för mer detaljer.

Vad är auktorisationskodflödet?

Auktorisationskodflödet (definierat i OAuth 2.0 RFC 6749, avsnitt 4.1) är en grundläggande autentiseringsmetod i OIDC. Det involverar utbyte av en auktorisationskod för en åtkomsttoken och eventuellt en uppfriskningstoken. Detta flöde är lämpligt för applikationer som kan hantera en klienthemlighet på ett säkert sätt, såsom serverbaserade webbapplikationer.

Kolla in Auth Wiki > Authorization Code Flow för mer detaljer.

Hur fungerar omdirigerings-URI i auktorisationskodflödet?

I auktorisationskodflödet är omdirigerings-URI destinationen dit OIDC-leverantören skickar auktorisationskoden efter att användaren har autentiserat framgångsrikt. Det måste vara förregistrerat 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 omdirigerings-URI i Logto Console: omdirigerings-uri

När du startar en inloggning:

  1. Auktorisationsförfrågan: Din applikation dirigerar användaren till OIDC-leverantörens auktorisationsendpoint, inklusive parametrar som client_id, response_type, scope och redirect_uri.
  2. Användarautentisering: Användaren autentiserar sig med OIDC-leverantören.
  3. Auktorisationskodleverans: Vid framgångsrik autentisering omdirigerar OIDC-leverantören användaren till den specificerade redirect_uri, inklusive en auktorisationskod som en frågeparameter.

OIDC-leverantören validerar redirect_uri mot listan över förregistrerades URI. Om det finns en mismatch kommer ett invalid_redirect_uri-fel att returneras, vilket förbättrar säkerheten genom att förhindra att obehöriga endpoints tar emot tokens.

Bästa praxis för omdirigerings-URIer

I verkliga användarfall är en vanlig bästa praxis att deklarera en dedikerad "Callback"-sida och associera en router / djuplänk som tillåter direktåtkomst från externt. Denna länk bör användas som omdirigerings-URI.

Förutsatt att du har en enkelsidig webapp som körs på https://my-app.com, så brukar omdirigerings-URI deklareras som https://my-app.com/callback

Eller om det är en inbyggd mobilapp, börjar vanligtvis omdirigerings-URI med ett anpassat schema, t.ex. com.company://myapp/callback

Andra bästa praxis inkluderar:

  • Undvik wildcards: Använd inte jokerteckenmönster i omdirigerings-URIer. Lista uttryckligen alla tillåtna URIer för att förhindra obehörig åtkomst.
  • Matcha exakt: Se till att omdirigerings-URI matchar exakt med den som registrerats i OIDC-leverantören. Till och med ett avslutande snedstreck kan orsaka en mismatch.

Hantera inloggningsåterkoppling

För att hantera auktorisationskoden som returneras till din redirect_uri, följ dessa steg:

  1. Extrahera auktorisationskoden: Hämta kodparametern från frågesträngen i omdirigerings-URI.

  2. Byt ut auktorisationskoden mot tokens: Skriv en POST-begäran till OIDC-leverantörens token-endpoint, inklusive:

    • client_id: ID för din applikation i OIDC-leverantören
    • code: Auktorisationskoden mottagen från omdirigerings-URI
    • code_verifier: En slumpmässig sträng genererad på klienten
    • redirect_uri: Samma URI som användes i auktorisationsförfrågan
    • grant_type: Typ av bidrag, vanligtvis authorization_code

Exempel på tokenutbytesbegäran i JavaScript

Förenkla kodbytesprocess i Logto genom att utnyttja Logto SDK:er

Logto SDK:er är utvecklingspaket skrivna i ett specifikt programmeringsspråk eller ramverk, t.ex. Logto React SDK, Next.js SDK och Swift SDK. Genom att använda ett SDK kan saker förenklas genom att bara kalla en eller två funktioner.

Här är ett exempel på en React "Callback"-komponent med hjälp av Logtos officiella React SDK:

SDK-integrationsguider kan hittas på Logto Docs > Quick-starts.

Sammanfattning: varför det är viktigt att bemästra omdirigerings-URIer i OIDC

Att förstå omdirigerings-URIer i OIDC med auktorisationskodflöde är avgörande för att säkra och optimera dina autentiseringsprocesser. Genom att registrera betrodda omdirigerings-URIer och hantera inloggningsåterkopplingar effektivt kan du säkerställa en sömlös och säker upplevelse för dina användare samtidigt som du förenklar dina utvecklingsinsatser med Logto SDK:er.