- Associe le compte à l’utilisateur en tant que compte connecté.
- Stocke les jetons d’accès et d’actualisation du fournisseur externe pour le compte connecté dans Token Vault.
Authentification de l’utilisateur vs Comptes connectés
/me/v1/connected-accounts) pour récupérer et stocker les jetons d’accès et 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 Comptes connectés terminé avec succès, Auth0 ajoute le compte de l’utilisateur au tableau connected_accounts dans le profil de l’utilisateur. En revanche, pour le flux de connexion sociale ou d’entreprise, Auth0 ajoute le compte de l’utilisateur au tableau identities dans le profil de l’utilisateur.
Le tableau suivant explique les différences entre les flux d’authentification de l’utilisateur et de Comptes connectés :
| Authentification de l’utilisateur | Comptes connectés | |
|---|---|---|
| Flux | Flux de connexion utilisant le point de terminaison /authorize | Flux Comptes connectés utilisant le point de terminaison /me/v1/connected-accounts de l’API My Account |
| Objectif | Authentifier les utilisateurs auprès d’un fournisseur d’identité social ou d’entreprise | Stocker les jetons d’accès et d’actualisation pour le compte connecté dans le Token Vault lorsqu’un utilisateur se connecte via un fournisseur externe pris en charge, établit la connexion et l’autorise |
| Authentification | Comptes connectés | Comportement | Scopes |
|---|---|---|---|
| Activée | Désactivée | 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 avec tous les scopes supplémentaires inclus dans le paramètre connection_scope de la requête d’autorisation. |
| Désactivée | Activée | La connexion utilise le flux Comptes connectés 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, tous les scopes inclus dans le paramètre scopes de la requête d’autorisation ont préséance sur les scopes sélectionnés dans Auth0 Dashboard, à l’exception de offline_access, si requis par la connexion et activé dans Auth0 Dashboard.Remarque : Si requis par la connexion, Auth0 vous invitera à activer offline_access, ce qui permet à l’application cliente de récupérer un jeton d’actualisation auprès d’Auth0. Vous devez activer offline_access pour la connexion dans Auth0 Dashboard. |
| Activée | Activée | La connexion utilise le flux de connexion /authorize pour authentifier les utilisateurs en tant que fournisseur d’identité valide. Elle utilise également le flux Comptes connectés pour récupérer et stocker les jetons d’accès pour la connexion dans le Token Vault. | Utilisez Auth0 Dashboard et Management API pour transmettre les scopes souhaités à la connexion. À l’exécution, tous les scopes inclus dans le paramètre scopes ont préséance sur les scopes sélectionnés dans Auth0 Dashboard, à l’exception de offline_access, si requis par la connexion et activé dans Auth0 Dashboard.Remarque : Si requis par la connexion, Auth0 vous invitera à activer offline_access, ce qui permet à l’application cliente de récupérer un jeton d’actualisation auprès d’Auth0. Vous devez activer offline_access pour la connexion dans Auth0 Dashboard. |
Fonctionnement

- L’application cliente envoie une requête
POSTvers le point de terminaison/me/v1/connected-accountsde l’API My Account, en passant les scopes et d’autres paramètres à transmettre au fournisseur externe. Pour en savoir plus, consultez Initier une demande de Comptes connectés. - L’API My Account crée un
auth_sessionet unconnect_uriuniques contenant unticketqui redirige l’utilisateur vers un navigateur Web. L’application cliente enregistre leauth_sessionpour une 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_uriavec 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 Authorization Code avec PKCE. - L’utilisateur établit la connexion et accorde les autorisations pour 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 ensuite vers l’application cliente en utilisant le
redirect_uriavec unconnect_codeà usage unique. - L’application cliente présente le
connect_code, lecode_verifier(le cas échéant) et leauth_sessionoriginal à l’API My Account en effectuant une requêtePOSTvers le point de terminaison/me/v1/connected-accounts/complete. Pour en savoir plus, consultez Compléter une demande de Comptes connectés. - L’API My Account valide la requête en confirmant :
- que le
auth_sessioncorrespond à l’id initialement émis pour l’utilisateur; - que la requête provient du même appareil que celui qui a lancé le flux Comptes connectés;
- le JWT de preuve DPoP (s’il est configuré);
- le
connect_codeà usage unique; - le
code_verifier(si vous utilisez le flux PKCE).
- que le
- Après validation réussie, le Serveur d’autorisation Auth0 ajoute le compte au tableau
connected_accountsdans le profil de l’utilisateur et stocke les jetons d’accès et d’actualisation du compte connecté dans le Token Vault. - L’API My Account termine le flux en renvoyant un code d’état
200à l’application cliente, indiquant que le compte a été connecté avec succès.
Conditions préalables
- Configurer Token Vault pour votre application cliente afin de stocker en toute sécurité les jetons d’accès et d’actualisation associés à chaque compte connecté dans Token Vault.
- Configurer l’API My Account, qui est utilisée par les utilisateurs authentifiés pour connecter et gérer leurs comptes.
- Configurer le 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 cliente afin d’appliquer une contrainte liée à l’émetteur sur les jetons d’accès, ce qui permet de 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 activée, sélectionnez Auth0 My Account API, puis l’onglet Applications.
- Activez votre application cliente pour l’autoriser à accéder à l’API My Account.
- Dans le menu déroulant, sélectionnez les scopes Connected Accounts pour l’application.
- Sélectionnez Update. Cela crée un client grant qui permet à votre application cliente 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 multi‑ressource
- Auth0 Dashboard
- Management API
Pour configurer MRRT avec Auth0 Dashboard :
- Accédez à Applications > Applications et sélectionnez votre application.
- Sous Multi-Resource Refresh Token, sélectionnez Edit Configuration.
- Pour activer MRRT avec l’API My Account, activez My Account API.
Configurer les comptes connectés
- Accédez à Authentication > Social Connections ou Enterprise Connections et sélectionnez la connexion.
- Sélectionnez Applications, puis activez la connexion pour votre application cliente.
- Auth0 Dashboard
- Management API
Pour configurer les comptes connectés avec l’Auth0 Dashboard :
- Accédez à Authentication > Social Connections ou Enterprise Connections.
- Sélectionnez Create Connection ou sélectionnez une connexion existante.
- Dans Purpose, activez Use for Connected Accounts for Token Vault. Selon votre paramètre Purpose, vous pourriez devoir activer
offline_accessdans l’Auth0 Dashboard afin de permettre à l’application cliente d’obtenir un jeton d’actualisation du fournisseur externe pendant le flux de comptes connectés. Pour en savoir plus, consultez Authentification de l’utilisateur vs comptes connectés. - Cliquez sur Save.
Obtenir un jeton d’accès pour Connected Accounts
Récupérer un jeton d’actualisation
offline_scope afin de renvoyer un jeton d’actualisation et un code d’autorisation à usage unique pour l’identifiant d’API My Account https://{yourDomain}/me/ :
/token :
Échanger un jeton d’actualisation contre un jeton d’accès à l’API My Account
refresh_token :
Lancer une requête Connected Accounts
POST vers le 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. Ceci est requis pour que votre application client 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 sur google-oauth2. |
redirect_uri | L’URL de rappel (callback) de votre application client. |
state | Une chaîne unique et aléatoire 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. S’il est utilisé pour transmettre des scopes pour une connexion sociale Google, incluez au minimum openid et profile. Au moment de l’exécution, tous les scopes inclus dans le paramètre scopes ont préséance sur les scopes sélectionnés dans Auth0 Dashboard, à l’exception de 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 actuelle authentifiée de l’utilisateur principal. L’application cliente enregistre l’ID de session pour une vérification ultérieure. |
connect_uri | URL vers laquelle l’application cliente redirige l’utilisateur, ce qui ouvre un navigateur web pour gérer l’autorisation avec le fournisseur externe. |
connect_params | Paramètres supplémentaires requis pour l’URI de connexion. Comprend un ticket temporaire que l’API My Account utilise pour vérifier la requête. |
expires_in | Temps d’expiration de la session, en secondes. |
connect_uri avec le ticket en tant que paramètre de requête. Autorisez la liste de scopes dans l’écran de consentement, puis extrayez et enregistrez le connect_code dans le fragment d’URL.
Terminer une requête de comptes connectés
POST au point de terminaison /me/v1/connected-accounts/complete avec les paramètres suivants :
| Paramètre | Description |
|---|---|
auth_session | ID de session qui représente la session actuelle authentifiée de l’utilisateur principal. L’application cliente enregistre l’ID de session pour une vérification ultérieure. |
connect_code | Code à usage unique et de courte durée reçu du processus d’autorisation du fournisseur externe. Ce code est échangé de façon sécurisée côté serveur pour récupérer les jetons d’accès définitifs pour l’API externe. |
redirect_uri | L’URL de rappel exacte de votre application où l’utilisateur a été redirigé après avoir autorisé avec succès la connexion au fournisseur externe. Cette valeur doit correspondre au redirect_uri utilisé pour lancer le flux. |
| Paramètre | Description |
|---|---|
id | Identifiant unique du compte connecté. |
connection | Nom de la connexion. |
created_at | Horodatage indiquant le moment où le compte connecté a été créé et lié au profil de l’utilisateur. |
scopes | Les portées OAuth spécifiques (autorisations) que l’utilisateur a accordées à votre application au moment de la connexion au fournisseur externe. Ces portées déterminent quelles actions sur l’API externe votre application peut effectuer. |
access_type | Indique le type d’accès accordé. Une valeur courante est offline, ce qui signifie qu’un Jeton d’actualisation a été obtenu et stocké avec succès, permettant à votre application de conserver l’accès même lorsque l’utilisateur est hors ligne. |
Gérer les comptes connectés
/me/v1/connected-accounts.
Avant d’utiliser la collection /connected-accounts, obtenez un jeton d’accès pour Connected Accounts.
Interroger les connexions des comptes connectés
GET vers le point de terminaison /me/v1/connected-accounts/connections afin d’obtenir une liste de connexions associées au profil de l’utilisateur :
Interroger les comptes connectés
GET vers le point de terminaison /me/v1/connected-accounts/accounts pour obtenir une liste des comptes connectés associés au profil de l’utilisateur :
GET vers le point de terminaison /users/{userId}/connected-accounts :
Interroger les comptes connectés pour une connexion donnée
GET vers le point de terminaison /me/v1/connected-accounts/accounts et transmettez le nom de la connexion comme paramètre de requête pour obtenir une liste de comptes connectés filtrée par la connexion spécifiée, liée à un profil d’utilisateur.
google-oauth2 :
Supprimer un compte connecté
DELETE sur le point de terminaison /me/v1/connected-accounts/accounts/{connectedAccountId} pour supprimer un compte connecté associé à un id donné :