La disponibilité varie selon votre plan Auth0
La disponibilité de cette fonctionnalité dépend à la fois de votre mise en œuvre de connexion et de votre plan Auth0 ou de votre entente personnalisée. Pour en savoir plus, consultez Tarification.
- Action avec application externe de liaison
- Auth0
- bibliothèque auth0.js
Action avec une application externe de liaison
Vous pouvez utiliser une Action avec une application externe de liaison pour lier des comptes d’utilisateur au moyen de la Management API. Les étapes suivantes illustrent un exemple de mise en œuvre :- L’Action identifie les comptes d’utilisateur potentiellement à lier (s’ils existent).
-
L’Action redirige l’utilisateur vers une application externe de liaison avec une charge utile de jeton contenant des identités d’utilisateur candidates :
- L’application externe de liaison invite l’utilisateur à s’authentifier à l’aide des informations d’identification du compte qu’il souhaite lier.
-
L’application externe de liaison redirige l’utilisateur vers l’Action avec une charge utile de jeton contenant les identités d’utilisateur principale et secondaire :
- L’Action valide l’authenticité et le contenu du jeton.
- L’Action envoie une requête à la Management API pour lier les comptes selon les résultats de l’application externe de liaison.
-
L’Action passe à l’utilisateur principal s’il ne correspond pas à
event.user.user_id.
Pendant l’exécution de l’application externe de liaison, la transaction de connexion d’origine est suspendue et rattachée à la session Auth0 actuelle de l’utilisateur. Si l’application authentifie le second compte en appelant
/authorize sur le même domaine Auth0 que la connexion d’origine, cette seconde connexion remplace la session. L’appel à /continue échoue alors avec l’erreur Unable to process redirect callback. Ce problème est souvent causé par un appel à /continue avec un paramètre state invalide.Pour éviter cela, liez les comptes une fois la connexion terminée, lorsqu’aucune transaction n’est suspendue. Pour en savoir plus, consultez Liaison de comptes d’utilisateur : mise en œuvre côté serveur pour les applications Web classiques ou Liaison de comptes initiée par l’utilisateur : mise en œuvre côté client pour les applications à page unique.Exemple : Action de liaison de comptes
Management API
Vous pouvez utiliser le endpoint Lier un compte d’utilisateur de la Management API de deux façons :- Liaison de comptes côté client initiée par l’utilisateur à l’aide de avec la portée
update:current_user_identities. - Liaison de comptes côté serveur à l’aide de jetons d’accès avec la portée
update:users.
Liaison de comptes côté client initiée par l’utilisateur
Pour la liaison de comptes côté client initiée par l’utilisateur, il vous faut un jeton d’accès qui contient les éléments suivants dans la charge utile :- la portée
update:current_user_identites - le
user_iddu compte principal dans l’URL - du compte secondaire, signé avec RS256 et comportant une revendication
audqui identifie le client et correspond à la valeur de la revendicationazpdu jeton d’accès utilisé pour la demande.
update:current_user_identities ne peut être utilisé que pour mettre à jour les renseignements de l’utilisateur actuellement connecté. Cette méthode convient donc aux scénarios où l’utilisateur lance le processus de liaison.
Vous utilisez Auth0 CLI? Si ce n’est pas déjà fait, configurez et authentifiez votre session CLI avant d’exécuter cette commande.
Liaison de comptes côté serveur
Pour la liaison de comptes côté serveur, vous avez besoin d’un jeton d’accès qui contient les éléments suivants dans la charge utile :- portée
update:users user_iddu compte principal dans l’URLuser_iddu compte secondaire- jeton d’identité du compte secondaire signé avec RS256 et comprenant une revendication
audqui identifie le client et dont la valeur correspond à celle de la revendicationazpdu jeton d’accès à l’origine de la requête.
update:users peuvent servir à mettre à jour les renseignements de n’importe quel utilisateur. Par conséquent, cette méthode est réservée au code côté serveur.
Le user_id et le provider du compte d’utilisateur secondaire peuvent être déduits à partir de son identifiant unique. Par exemple, pour l’identifiant google-oauth2|108091299999329986433 :
providerestgoogle-oauth2user_idest108091299999329986433
provider et du user_id :