- associe le compte à l’utilisateur en tant que compte connecté;
- stocke dans Token Vault les jetons d’accès et d’actualisation du fournisseur externe pour le compte connecté.
Authentification de l’utilisateur vs Connected Accounts
/me/v1/connected-accounts) pour récupérer et stocker les jetons d’accès et les jetons d’actualisation dans le Token Vault, au lieu d’utiliser le flux de connexion sociale ou d’entreprise (point de terminaison /authorize). Une fois le flux Connected Accounts mené à bien, Auth0 ajoute le compte de l’utilisateur au tableau connected_accounts du profil utilisateur. À l’inverse, dans le flux de connexion sociale ou d’entreprise, Auth0 ajoute le compte de l’utilisateur au tableau identities du profil utilisateur.
Le tableau suivant présente les différences entre le flux d’authentification de l’utilisateur et le flux Connected Accounts :
| Authentification de l’utilisateur | Connected Accounts | |
|---|---|---|
| Flux | Flux de connexion utilisant le point de terminaison /authorize | Flux Connected Accounts utilisant le point de terminaison /me/v1/connected-accounts de la My Account API |
| Objectif | Authentifier les utilisateurs auprès d’un fournisseur d’identité social ou d’entreprise | Stocker les jetons d’accès et les jetons d’actualisation du compte connecté dans le Token Vault lorsqu’un utilisateur ouvre une session au moyen d’un fournisseur externe pris en charge, connecte le compte et autorise la connexion |
| Authentication | Connected Accounts | Behavior | Scopes |
|---|---|---|---|
| Activé | Désactivé | La connexion utilise le flux de connexion /authorize pour authentifier les utilisateurs en tant que fournisseur d’identité valide. | Utilisez Auth0 Dashboard ou Management API pour transmettre les scopes souhaités pour votre connexion. À l’exécution, cette liste est automatiquement complétée par tous les scopes supplémentaires inclus dans le paramètre connection_scope de la demande d’autorisation. |
| Désactivé | Activé | La connexion utilise le flux Connected Accounts pour récupérer et stocker les jetons de la connexion dans le Token Vault. La connexion n’utilise pas le flux de connexion /authorize pour authentifier les utilisateurs et est exclue de la liste des fournisseurs d’identité valides. | Utilisez Auth0 Dashboard ou Management API pour transmettre les scopes souhaités à votre connexion. À l’exécution, les scopes inclus dans le paramètre scopes de la demande d’autorisation ont priorité sur les scopes sélectionnés dans Auth0 Dashboard, sauf offline_access, s’il est requis par la connexion et activé dans Auth0 Dashboard.Remarque : Si la connexion l’exige, Auth0 vous invitera à activer offline_access, ce qui permettra à l’application cliente d’obtenir un jeton d’actualisation d’Auth0. Vous devez activer offline_access pour la connexion dans Auth0 Dashboard. |
| Activé | Activé | La connexion utilise le flux de connexion /authorize pour authentifier les utilisateurs en tant que fournisseur d’identité valide. Elle utilise aussi le flux Connected Accounts pour récupérer et stocker les jetons d’accès de la connexion dans le Token Vault. | Utilisez Auth0 Dashboard et Management API pour transmettre les scopes souhaités à la connexion. À l’exécution, les scopes inclus dans le paramètre scopes ont priorité sur les scopes sélectionnés dans Auth0 Dashboard, sauf offline_access, s’il est requis par la connexion et activé dans Auth0 Dashboard.Remarque : Si la connexion l’exige, Auth0 vous invitera à activer offline_access, ce qui permettra à l’application cliente d’obtenir un jeton d’actualisation d’Auth0. Vous devez activer offline_access pour la connexion dans Auth0 Dashboard. |
Fonctionnement
Si votre application utilise des Organisations, authentifiez l’utilisateur auprès de l’organisation cible avant de lancer le flux Connected Accounts. Token Vault stocke le compte connecté dans le profil Auth0 de l’utilisateur; chaque membre de l’organisation connecte donc et autorise son propre compte externe.

- L’application cliente envoie une requête
POSTau point de terminaison/me/v1/connected-accounts/connectde l’API My Account, en transmettant les scopes et d’autres paramètres à envoyer au fournisseur externe. Pour en savoir plus, consultez Lancer une demande Connected Accounts. - L’API My Account crée un
auth_sessionunique et unconnect_uricontenant unticketqui redirige l’utilisateur vers un navigateur Web. L’application cliente enregistre leauth_sessionpour vérification ultérieure. Si DPoP est configuré, l’API My Account valide le JWT de preuve DPoP. - L’application cliente redirige l’utilisateur vers le
connect_uri, avec leticketcomme paramètre de requête, pour l’authentification et l’autorisation de l’utilisateur dans le navigateur. L’application cliente peut aussi transmettre uncode_challengeou uncode_challenge_methoddans l’URL, comme dans le flux de code d’autorisation avec PKCE. - L’utilisateur connecte le compte et autorise les autorisations de la connexion dans l’écran de consentement.
- Une fois que l’utilisateur a autorisé la connexion avec succès, le fournisseur externe redirige l’utilisateur vers l’API My Account, qui le redirige vers l’application cliente au moyen du
redirect_uriavec unconnect_codeà usage unique. - L’application cliente présente le
connect_code, lecode_verifier(le cas échéant) et leauth_sessiond’origine à l’API My Account en envoyant une requêtePOSTau point de terminaison/me/v1/connected-accounts/complete. Pour en savoir plus, consultez Terminer une demande Connected Accounts. - L’API My Account valide la demande en confirmant :
- que le
auth_sessioncorrespond à l’ID initialement émis pour l’utilisateur - que la demande provient du même appareil que celui qui a lancé le flux Connected Accounts
- que le JWT de preuve DPoP est valide (si configuré)
- que le
connect_codeà usage unique est valide - que le
code_verifierest valide (si vous utilisez le flux PKCE)
- que le
- Une fois la validation réussie, le serveur d’autorisation Auth0 ajoute le compte au tableau
connected_accountsdu profil de l’utilisateur et stocke les jetons d’accès et d’actualisation du compte connecté dans Token Vault. - L’API My Account termine le flux en renvoyant un code d’état
200à l’application cliente, indiquant que le compte a bien été connecté.
Prérequis
- Configurer Token Vault afin que votre application stocke de façon sécurisée les jetons d’accès et les jetons d’actualisation associés à chaque compte connecté dans Token Vault.
- Configurer l’API My Account, qu’utilisent les utilisateurs authentifiés pour connecter et gérer des comptes.
- Configurer Multi-Resource Refresh Token (MRRT) pour obtenir un jeton d’accès pour l’API My Account.
- (Facultatif) Configurer DPoP pour l’API My Account et votre application afin de lier les jetons d’accès à l’expéditeur, ce qui aide à prévenir le vol de jetons. Par défaut, l’API My Account peut accepter des jetons d’accès liés à DPoP.
Configurer l’API My Account
- Accédez à Applications > APIs et activez l’API My Account.
- Une fois l’API activée, sélectionnez Auth0 My Account API, puis l’onglet Application Access.
- Repérez votre application et sélectionnez Edit pour configurer ses politiques d’accès à l’API pour les applications.
- Sélectionnez User Access et, sous Authorization, sélectionnez Authorized.
- Pour les permissions, sélectionnez tous les scopes Connected Accounts pour l’application.
- Sélectionnez Save. Cela crée un client grant qui permet à votre application d’accéder à l’API My Account avec les scopes Connected Accounts au nom de l’utilisateur.
- Si vous utilisez Multi-Resource Refresh Token, accédez à l’onglet Settings. Sous Access Settings, sélectionnez Allow Skipping User Consent.
Configurer le jeton d’actualisation multiresource
- Auth0 Dashboard
- Management API
Pour configurer le MRRT dans l’Auth0 Dashboard :
- Accédez à Applications > Applications et sélectionnez votre application.
- Sous Multi-Resource Refresh Token, sélectionnez Edit Configuration.
- Pour activer le MRRT avec l’API My Account, activez My Account API.
Configurer Connected Accounts
- Accédez à Authentication > Social Connections ou Enterprise Connections, puis sélectionnez la connexion.
- Sélectionnez Applications, puis activez la connexion pour votre application.
- Auth0 Dashboard
- Management API
Pour configurer Connected Accounts avec Auth0 Dashboard :
- Accédez à Authentication > Social Connections ou Enterprise Connections.
- Sélectionnez Create Connection ou une connexion existante.
- Dans Purpose, activez Connected Accounts for Token Vault. Selon votre paramètre Purpose, vous devrez peut-être activer
offline_accessdans Auth0 Dashboard afin de permettre à l’application d’obtenir un jeton d’actualisation du fournisseur externe pendant le flux Connected Accounts. Pour en savoir plus, consultez Authentification des utilisateurs ou Connected Accounts. - Cliquez sur Save.
Obtenir un jeton d’accès pour Connected Accounts
Obtenir un jeton d’actualisation
offline_scope afin d’obtenir un jeton d’actualisation et un code d’autorisation à usage unique pour l’identifiant de l’API My Account https://{yourDomain}/me/ :
/token :
Échanger un jeton d’actualisation contre un jeton d’accès pour l’API My Account
Lancer une demande de Connected Accounts
POST au point de terminaison /me/v1/connected-accounts/connect de l’API My Account avec les paramètres suivants :
Pour une connexion sociale Google, assurez-vous de sélectionner
offline_access dans Auth0 Dashboard lorsque vous configurez votre connexion. Cette option est requise pour que votre application puisse récupérer un Jeton d’actualisation auprès du serveur d’autorisation Auth0.| Paramètre | Description |
|---|---|
connection | Nom de la connexion. Pour une connexion sociale Google, définissez-la à google-oauth2. |
redirect_uri | L’URL de rappel de votre application. |
state | Une chaîne aléatoire unique associée à la requête pour prévenir les attaques. |
scopes | (Facultatif) Les scopes transmis au fournisseur externe sous forme de tableau de chaînes de caractères. S’ils sont utilisés pour transmettre des scopes à une connexion sociale Google, incluez au minimum openid et profile. À l’exécution, les scopes inclus dans le paramètre scopes ont préséance sur les scopes sélectionnés dans Auth0 Dashboard, sauf offline_access, s’il est requis par la connexion et activé dans Auth0 Dashboard. |
| Paramètre | Description |
|---|---|
auth_session | ID de session qui représente la session authentifiée actuelle de l’utilisateur principal. L’application cliente enregistre cet ID de session pour une vérification ultérieure. |
connect_uri | URL vers laquelle l’application cliente redirige l’utilisateur afin d’ouvrir un navigateur Web pour gérer l’autorisation auprès du fournisseur externe. |
connect_params | Paramètres supplémentaires nécessaires pour l’URI de connexion. Comprend un ticket temporaire que l’API My Account utilise pour vérifier la requête. |
expires_in | Durée de validité de la session, en secondes. |
connect_uri en passant le ticket comme paramètre de requête. Autorisez la liste des scopes dans l’écran de consentement, puis extrayez et enregistrez le connect_code dans le fragment de l’URL.
Finaliser une demande de Connected Accounts
POST vers le point de terminaison /me/v1/connected-accounts/complete avec les paramètres suivants :
| Paramètre | Description |
|---|---|
auth_session | Identifiant de session représentant la session authentifiée actuelle de l’utilisateur principal. L’application enregistre cet identifiant de session pour une vérification ultérieure. |
connect_code | Code à usage unique et de courte durée reçu dans le cadre du processus d’autorisation du fournisseur externe. Ce code est échangé de façon sécurisée côté serveur afin de récupérer les jetons d’accès finaux pour l’API externe. |
redirect_uri | URL de rappel exacte de votre application vers laquelle l’utilisateur a été redirigé après avoir autorisé avec succès la connexion auprès du fournisseur externe. Cette valeur doit correspondre au redirect_uri utilisé pour lancer le flux. |
| Parameter | Description |
|---|---|
id | Identifiant unique du compte connecté. |
connection | Nom de la connexion. |
created_at | Horodatage indiquant quand le compte connecté a été créé et lié au profil de l’utilisateur. |
scopes | Les scopes OAuth (autorisations) précis que l’utilisateur a accordés à votre application lors de la connexion au fournisseur externe. Ces scopes déterminent les actions que votre application peut effectuer sur l’API externe. |
access_type | Indique le type d’accès accordé. Une valeur courante est offline, ce qui signifie qu’un jeton d’actualisation a bien été obtenu et stocké, permettant à votre application de conserver l’accès même lorsque l’utilisateur est hors ligne. |
Gérer les Connected Accounts
/me/v1/connected-accounts.
Avant d’utiliser la collection /connected-accounts, obtenez un jeton d’accès pour les Connected Accounts.
Interroger les connexions des comptes liés
GET vers le point de terminaison /me/v1/connected-accounts/connections pour obtenir une liste des connexions liées au profil de l’utilisateur :
Interroger les Connected Accounts
GET sur le point de terminaison /me/v1/connected-accounts/accounts pour obtenir la liste des Connected Accounts associés au profil de l’utilisateur :
GET au point de terminaison /users/{userId}/connected-accounts :
Interroger les Connected Accounts pour une connexion donnée
GET vers le point de terminaison /me/v1/connected-accounts/accounts et indiquez le nom de la connexion comme paramètre de requête pour obtenir une liste des Connected Accounts filtrés selon une connexion donnée associée à un profil d’utilisateur :
google-oauth2 :
Supprimer un compte connecté
DELETE au point de terminaison /me/v1/connected-accounts/accounts/{connectedAccountId} pour supprimer un compte connecté associé à un ID donné :