Association de comptes d’utilisateur

Auth0 permet de relier des comptes d’utilisateurs provenant de différents fournisseurs d’identité. Cela permet à un utilisateur de s’authentifier à partir de n’importe lequel de ses comptes tout en étant toujours reconnu par votre application et associé au même profil utilisateur.

La disponibilité varie selon le plan Auth0

L’implémentation propre à votre connexion et votre plan Auth0 ou accord personnalisé que vous utilisez déterminent si cette fonctionnalité est disponible. Pour en savoir plus, lisez Tarification.

Par défaut, Auth0 considère chaque identité comme indépendante. Par exemple, si un utilisateur se connecte d’abord via la base de données Auth0, puis via Google ou Facebook, ces deux tentatives de connexion seront perçues par Auth0 comme deux utilisateurs distincts. Vous pouvez mettre en œuvre une fonctionnalité afin de permettre à un utilisateur d’associer explicitement les comptes. Dans ce scénario, l’utilisateur se connecte avec un fournisseur initial, par exemple Google. Votre application fournit un lien ou un bouton pour qu’il puisse associer un autre compte au premier. L’utilisateur doit cliquer sur ce lien ou bouton, et votre application effectuera un appel. Lorsque l’utilisateur se connectera au deuxième fournisseur, le deuxième compte sera automatiquement associé au premier.

Avantages relatifs à l’association des comptes

  • Permet aux utilisateurs de se connecter avec n’importe quel fournisseur d’identité sans avoir à créer un profil distinct pour chacun d’entre eux

  • Permet aux utilisateurs inscrits d’utiliser une nouvelle connexion par réseau social ou sans mot de passe tout en continuant à utiliser leur profil existant

  • Permet aux utilisateurs qui se sont inscrits en utilisant une connexion sans mot de passe de se connecter à un compte avec un profil plus complet

  • Permet à vos applications de récupérer les données de profil utilisateur stockées dans diverses connexions

Précautions

L’association non sécurisée de comptes peut permettre à des acteurs menaçants d’accéder à des comptes d’utilisateurs légitimes. Veuillez tenir compte des éléments suivants :

Pour les liaisons de comptes manuelles ou automatiques, votre locataire doit demander l’authentification des deux comptes avant de procéder à la liaison.

En outre, chaque liaison de compte manuelle doit inviter l’utilisateur à saisir ses identifiants.

Fonctionnement

Le processus de liaison des comptes permet de fusionner deux profils utilisateurs existants en un seul. Lors de la liaison des comptes, un compte principal et un compte secondaire doivent être déterminés.

Vous pouvez voir ci-dessous comment se présentera le profil résultant de l’association du compte primaire et du compte secondaire de notre exemple.

"email": "your0@email.com",
  "email_verified": true,
  "name": "Pierre Untel",
  "given_name": "Pierre",
  "family_name": "Untel",
  "picture": "https://lh3.googleusercontent..../photo.jpg",
  "gender": "male",
  "locale": "en",
  "user_id": "google-oauth2|115015401343387192604",
  "identities": [
    {
      "provider": "google-oauth2",
      "user_id": "115015401343387192604",
      "connection": "google-oauth2",
      "isSocial": true
    }
  ],
  "user_metadata": {
    "color": "red"
  },
  "app_metadata": {
    "roles": [
      "Admin"
    ]
  },
  ...
}

Was this helpful?

/
{
  "phone_number": "+14258831929",
  "phone_verified": true,
  "name": "+14258831929",
  "updated_at": "2015-10-08T18:35:18.102Z",
  "user_id": "sms|560ebaeef609ee1adaa7c551",
  "identities": [
    {
      "user_id": "560ebaeef609ee1adaa7c551",
      "provider": "sms",
      "connection": "sms",
      "isSocial": false
    }
  ],
  "user_metadata": {
    "color": "blue"
  },
  "app_metadata": {
    "roles": [
      "AppAdmin"
    ]
  },
  ...
}

Was this helpful?

/
{
  "email": "your0@email.com",
  "email_verified": true,
  "name": "Pierre Untel",
  "given_name": "Pierre",
  "family_name": "Untel",
  "picture": "https://lh3.googleusercontent..../photo.jpg",
  "gender": "male",
  "locale": "en",
  "user_id": "google-oauth2|115015401343387192604",
  "identities": [
    {
      "provider": "google-oauth2",
      "user_id": "115015401343387192604",
      "connection": "google-oauth2",
      "isSocial": true
    },
 {
      "profileData": {
        "phone_number": "+14258831929",
        "phone_verified": true,
        "name": "+14258831929"
      },
 "user_id": "560ebaeef609ee1adaa7c551",
 "provider": "sms",
 "connection": "sms",
 "isSocial": false
 }
  ],
  "user_metadata": {
    "color": "red"
  },
  "app_metadata": {
    "roles": [
      "Admin"
    ]
  },
  ...
}

Was this helpful?

/

Remarques :

  • Le user_id et toutes les autres propriétés principales du profil restent ceux de l’identité principale.

  • La première identité dans le tableau user.identities est l’identité principale.

  • Le compte secondaire est désormais intégré dans le tableau user.identities du profil principal.

  • Les attributs du compte secondaire sont placés dans le champ profileData de l’identité correspondante à l’intérieur du tableau.

  • Les user_metadata et app_metadata du compte principal n’ont pas changé.

  • Les user_metadata et app_metadata du compte secondaire sont supprimés.

  • Il n’y a pas de fusion automatique des profils utilisateurs avec les identités associées.

  • Le compte secondaire est supprimé de la liste des utilisateurs.

  • Si vous supprimez le compte principal, le compte secondaire sera automatiquement supprimé.

Fusion de métadonnées

Les métadonnées ne sont pas fusionnées automatiquement lors de l’association de comptes. Si vous souhaitez les fusionner, vous devez le faire manuellement en utilisant le point de terminaison /users/patch_users_by_id de Management API.

On peut également utiliser la trousse SDK Node.js Auth0 pour l’APIv2.

Pour en savoir plus, consultez Comprendre le fonctionnement des métadonnées dans les profils utilisateurs.

Scénarios

Il existe deux manières différentes de mettre en œuvre l’association de comptes :

  • Association de comptes initiée par l’utilisateur : permettez à vos utilisateurs d’associer leurs comptes à partir d’un écran d’administration intégré à votre application.

  • Association de comptes suggérée : proposez à vos utilisateurs d’associer leurs comptes possédant la même adresse courriel.

Association de compte initiée par l’utilisateur :

En général, l’association de comptes sera initiée par un utilisateur authentifié Votre application doit fournir l’interface utilisateur, par exemple un bouton Link accounts (Lier des comptes) sur la page de profil de l’utilisateur.

Pour en savoir plus sur la façon de mettre en œuvre l’association de comptes initiée par l’utilisateur dans une application à page unique, consultez Association de comptes côté client. Pour en savoir plus sur la façon de mettre en œuvre l’association de comptes initiée par l’utilisateur dans une application Web courante, lisez Association de comptes côté serveur.

Association de comptes suggérée

Vous pouvez trouver des comptes avec le même courriel et demander aux utilisateurs de les associer. Par exemple, un utilisateur peut créer un compte Google à l’adresse user@gmail.com, puis se connecter à Facebook, à l’aide d’un compte associé au même courriel.

Dans ce cas, il est recommandé de présenter aux utilisateurs une liste d’options de comptes à associer, en exigeant d’abord leur authentification avec le compte initial.

Vous pouvez également utiliser Extension d’association de comptes pour obtenir le même résultat.

En savoir plus