Comprendre l'URI de redirection et le flux de code d'autorisation dans OpenID Connect (OIDC)
Examinons de plus près l'URI de redirection car il s'agit d'un élément de sécurité crucial dans le processus d'authentification OIDC.
Examinons de plus près l'URI de redirection car il s'agit d'un élément de sécurité crucial dans le processus d'authentification OIDC.
Un URI de redirection, également connu sous le nom d'URL de réponse, est un élément de sécurité crucial dans le processus d'authentification OIDC. Il spécifie l'URL vers laquelle les utilisateurs sont envoyés après s'être connectés avec succès via un fournisseur OIDC. Plus important encore, c'est là que votre application reçoit le code d'autorisation nécessaire pour obtenir des jetons.
Consultez le wiki URI de redirection pour plus de détails.
Le flux de code d'autorisation (défini dans OAuth 2.0 RFC 6749, section 4.1) est une méthode d'authentification fondamentale dans OIDC. Il implique l'échange d'un code d'autorisation contre un jeton d'accès et, éventuellement, un jeton de rafraîchissement. Ce flux est adapté aux applications qui peuvent maintenir en toute sécurité un secret client, telles que les applications web côté serveur.
Consultez le wiki du flux de code d'autorisation pour plus de détails.
Dans le flux de code d'autorisation, l'URI de redirection est la destination à laquelle le fournisseur OIDC envoie le code d'autorisation après que l'utilisateur s'est authentifié avec succès. Il doit être pré-enregistré auprès du fournisseur OIDC pour garantir la sécurité et empêcher les redirections non autorisées.
Voici comment vous pouvez enregistrer un URI de redirection dans Logto Console :

Lors de l'initiation d'une connexion :
client_id, response_type, scope et redirect_uri.redirect_uri spécifié, incluant un code d'autorisation en tant que paramètre de requête.Le fournisseur OIDC valide le redirect_uri par rapport à la liste des URIs pré-enregistrées. S'il y a une incohérence, une erreur invalid_redirect_uri sera renvoyée, renforçant la sécurité en empêchant les points de terminaison non autorisés de recevoir des jetons.
Dans des cas d'utilisation réels, une bonne pratique courante est de déclarer une page « Callback » dédiée et d'associer un routeur / lien profond permettant un accès direct depuis l'extérieur. Ce lien doit être utilisé comme l'URI de redirection.
En supposant que vous ayez une application web à page unique exécutée sur https://my-app.com, l'URI de redirection serait généralement déclaré comme https://my-app.com/callback
Ou s'il s'agit d'une application mobile native, l'URI de redirection commence généralement par un schéma personnalisé, par exemple com.company://myapp/callback
D'autres bonnes pratiques incluent :
Pour gérer le code d'autorisation renvoyé à votre redirect_uri, suivez ces étapes :
Extrait le code d'autorisation : Récupérez le paramètre code de la chaîne de requête de l'URI de redirection.
Échangez le code d'autorisation contre des jetons : Composez une requête POST au point de terminaison des jetons du fournisseur OIDC, incluant :
client_id: L'ID de votre application dans le fournisseur OIDCcode: Le code d'autorisation reçu de l'URI de redirectioncode_verifier: Une chaîne aléatoire générée sur le clientredirect_uri: Le même URI utilisé dans la requête d'autorisationgrant_type: Le type de subvention, généralement authorization_codeLes SDK Logto sont des kits de développement écrits dans un langage ou un cadre de programmation spécifique, par exemple le SDK React Logto, le SDK Next.js et le SDK Swift. Utiliser un SDK peut grandement simplifier les choses en appelant simplement une ou deux fonctions.
Voici un exemple de composant React « Callback » utilisant le SDK React officiel Logto :
Les guides d'intégration des SDK sont disponibles dans la documentation Logto quick-starts.
Comprendre les URIs de redirection dans OIDC avec le flux de code d'autorisation est crucial pour sécuriser et optimiser vos processus d'authentification. En enregistrant des URIs de redirection de confiance et en gérant efficacement les retours d'appel de connexion, vous pouvez garantir une expérience fluide et sécurisée pour vos utilisateurs tout en simplifiant vos efforts de développement avec les SDK Logto.