Cas d’utilisation
Les cas d’utilisation courants de l’échange de jeton d’actualisation comprennent :- Application Web : une application Web de productivité se connecte au Google Calendar d’un utilisateur et effectue des tâches en son nom, comme planifier des réunions, sans obliger l’utilisateur à s’authentifier de nouveau.
- Application mobile : une application mobile de galerie photo se connecte au compte Google Photos d’un utilisateur et téléverse des photos au fur et à mesure qu’elles sont prises, tout en maintenant la session de l’utilisateur ouverte grâce à l’actualisation du jeton d’accès en arrière-plan.
Fonctionnement
Le diagramme de séquence suivant décrit, de bout en bout, comment effectuer des requêtes vers des API externes à l’aide de l’échange de jeton d’actualisation dans Auth0 :
Prérequis
Avant de commencer, vous devez configurer l’échange du jeton d’actualisation avec Token Vault.Étape 1 : Se connecter et autoriser l’accès
Pour planifier la réunion, l’application Web doit se connecter à Google via Auth0, puis obtenir l’autorisation de l’utilisateur d’accéder à l’API Google Calendar. L’utilisateur se connecte à l’application avec Google à l’aide du Connected Accounts flow, qui utilise la My Account API. Si l’application utilise Organizations, l’utilisateur se connecte d’abord à l’organisation cible avant de poursuivre. Une fois la Connected Accounts request validée et menée à bien par la My Account API, celle-ci stocke les jetons d’accès et d’actualisation Google avec les scopes de calendrier demandés dans le Token Vault.Étape 2 : Effectuer l’échange de jeton d’actualisation
Bien que Token Vault ne prenne pas en charge la rotation des jetons d’actualisation, vous pouvez utiliser DPoP pour lier les jetons émis par Auth0 à votre client afin de renforcer la sécurité. Pour réussir l’échange de jeton d’actualisation avec Token Vault, désactivez l’option Allow Refresh Token Rotation pour votre application dans l’Auth0 Dashboard.
POST au point de terminaison /oauth/token avec les paramètres suivants :
Étape 3 : Auth0 Authorization Server valide le jeton d’actualisation
Auth0 Authorization Server valide et charge le profil utilisateur associé au jeton d’actualisation Auth0 :- Auth0 vérifie si le tableau
connected_accountsdu profil utilisateur contient un compte d’utilisateur avec le nom de la connexion transmis dans la demande d’autorisation. - Si la demande d’autorisation contient
login_hint, Auth0 recherche une identity correspondant à la fois au nom de la connexion et aulogin_hint. - Si Auth0 ne trouve pas l’utilisateur, il renvoie un code d’état
401avec un message d’erreur.