Fonctionnalités touchées
-
Vous ne pouvez plus utiliser un ID token dans l’en-tête
Authorization; vous devez utiliser un access token à la place. -
Si vous utilisez un access token dans l’en-tête
Authorizationavecupdate:userscomme permission accordée, vous pouvez envoyer dans le corps de la request soit leuser_id, soit l’ID token du compte secondaire. -
Si vous utilisez un access token dans l’en-tête
Authorizationavecupdate:current_user_metadatacomme permission accordée, vous pouvez seulement envoyer l’ID token du compte secondaire dans le corps de la request. -
Si vous envoyez l’ID token du compte secondaire dans le corps de la request (les cas d’utilisation décrits dans les deux puces précédentes), les conditions suivantes doivent être respectées :
- L’ID token doit être signé à l’aide de
RS256(vous pouvez définir cette valeur dans Dashboard > Clients > Client Settings > Advanced Settings > OAuth. - Le claim
audde l’ID Token doit identifier le client et avoir la même valeur que le claimazpde l’access token.
- L’ID token doit être signé à l’aide de
-
Pour dissocier des comptes, vous ne pouvez plus utiliser un ID token dans l’en-tête
Authorization. Vous devez utiliser un access token à la place.
Actions
- Scénarios de liaison côté client / lancés par l’utilisateur : Pour les scénarios de liaison côté client, effectuez la requête vers le point de terminaison Identities à l’aide d’un jeton d’accès avec la portée
update:current_user_identities, et fournissez le jeton ID du compte secondaire dans la charge utile (link_with). Ce jeton ID doit être obtenu au moyen d’un flux conforme à /OIDC. - Scénarios de liaison côté serveur : Pour les scénarios de liaison côté serveur, effectuez la requête vers le point de terminaison Identities à l’aide d’un jeton d’accès avec la portée
update:userset fournissez leuser_iddu compte secondaire dans la charge utile.
Lier des comptes d’utilisateur
Lier les comptes de l’utilisateur courant avec la Management API
update:current_user_identities) pour vous authentifier auprès de la Management API et utiliser le endpoint Link a User Account.
Vous devez maintenant obtenir un jeton d’accès (contenant la portée update:current_user_identities) et l’utiliser pour vous authentifier auprès de l’API afin d’utiliser l’endpoint Link a User Account. La charge utile doit être l’ID token de l’utilisateur secondaire.
-
Obtenez un jeton d’accès avec la portée
update:current_user_identities, comme dans l’exemple suivant. L’exemple utilise le flux implicite, mais vous pouvez obtenir des jetons d’accès pour tout type d’application. - Avec l’ancienne méthode utilisant un ID token, votre code ressemblerait à ceci : Avec la nouvelle méthode utilisant un jeton d’accès, votre code ressemblera à ceci :
-
Pour obtenir un jeton d’accès qui peut accéder à la Management API :
-
Définissez
audiencesurhttps://{yourDomain}/api/v2/. -
Demandez le
scope${scope}. -
Définissez
response_typesurid_token tokenafin qu’Auth0 envoie à la fois un ID token et un jeton d’accès. Si nous décodons le jeton d’accès et examinons son contenu, nous pouvons voir ce qui suit : Remarquez queaudest défini sur l’URI de l’API de votre tenant,scopesur${scope}etsubsur l’ID de l’utilisateur connecté.
-
Définissez
-
Les conditions suivantes doivent être respectées :
- L’ID token du compte secondaire doit être signé avec
RS256. - La claim
auddans l’ID token du compte secondaire doit identifier le client et avoir la même valeur que la claimazpdu jeton d’accès utilisé pour effectuer la requête.
- L’ID token du compte secondaire doit être signé avec
-
Une fois que vous avez le jeton d’accès, vous pouvez l’utiliser pour lier des comptes d’utilisateur. Cette partie reste inchangée : rien d’autre ne change dans la requête, sauf la valeur utilisée comme jeton
Bearer. La réponse demeure également la même.
Lier les comptes de l’utilisateur actuel avec auth0.js
auth0.Management et l’utiliser pour lier des comptes.
-
Obtenez un jeton d’accès avec le scope
update:current_user_identities, puis utilisez ce jeton pour instancierauth0.Management. La requête finale àlinkUserreste la même. -
Avec l’ancienne méthode utilisant un ID token, votre code ressemblerait à ceci :
Avec la nouvelle méthode utilisant un jeton d’accès, votre code ressemblera à ceci :
- Demande à la fois un ID token et un jeton d’accès dans la réponse (
responseType: `token id_token`). - Définit la Management API comme audience du jeton (
audience: `https://YOUR_DOMAIN/api/v2/`). - Demande la permission requise (
scope: `update:current_user_identities`). - S’authentifie auprès de la Management API à l’aide du jeton d’accès.
- Demande à la fois un ID token et un jeton d’accès dans la réponse (
Lier n’importe quel compte d’utilisateur avec la Management API
update:users et que vous envoyez le user_id et le provider du compte secondaire dans la requête, vous n’avez rien à changer.
Cependant, cette nouvelle méthode offre une autre possibilité. Vous utilisez toujours un jeton d’accès contenant le scope update:users pour vous authentifier auprès de l’API, mais dans le payload de la requête, vous pouvez envoyer le jeton d’ID du compte secondaire (au lieu de user_id et provider).
Vous utilisez l’Auth0 CLI ? Si ce n’est pas déjà fait, configurez et authentifiez votre session CLI avant d’exécuter cette commande.
- Le jeton d’ID du compte secondaire doit être signé avec
RS256. - Le claim
auddu jeton d’ID du compte secondaire doit identifier le client et avoir la même valeur que le claimazpdu jeton d’accès utilisé pour effectuer la requête.
Dissocier des comptes d’utilisateur
-
Vous devez d’abord obtenir un jeton d’accès avec la portée
update:current_user_identities. - Avec l’ancienne méthode utilisant un jeton ID, votre code ressemblerait à ceci : Avec la nouvelle méthode utilisant un jeton d’accès, votre code ressemblera à ceci :
-
Pour obtenir un jeton d’accès permettant d’accéder à la Management API :
-
Définissez
audiencesurhttps://{yourDomain}/api/v2/. -
Demandez la
scope${scope}. -
Définissez
response_typesurid_token tokenafin qu’Auth0 envoie à la fois un jeton ID et un jeton d’accès. Si nous décodons le jeton d’accès et en examinons le contenu, nous pouvons voir ce qui suit : Notez queaudest défini sur l’URI de l’API de votre tenant, quescopeest défini surupdate:current_user_identitieset quesubcorrespond à l’ID utilisateur de l’utilisateur connecté.
-
Définissez
-
Une fois le jeton d’accès obtenu, vous pouvez envoyer une requête au point de terminaison Dissocier une identité d’utilisateur de la Management API, en l’incluant dans l’en-tête
Authorization. -
Avec l’ancienne méthode, votre requête ressemblerait à ceci :
Avec la nouvelle méthode, votre requête ressemblera à ceci :
Considérations de sécurité
update:current_user_identities dans l’en-tête Authorization et incluez le user_id du compte secondaire dans la charge utile. Aucun autre cas d’utilisation n’est touché.