> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Découvrez comment lier des comptes utilisateur dans Auth0 à partir de différents fournisseurs d’identité.

# Liaison de comptes utilisateur

export const AuthCodeGroup = ({children, dropdown}) => {
  const [processedChildren, setProcessedChildren] = useState(children);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      unsubscribe = window.autorun(() => {
        const processChildren = node => {
          if (typeof node === "string") {
            let processedNode = node;
            for (const [key, value] of window.rootStore.variableStore.values.entries()) {
              const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
              processedNode = processedNode.replaceAll(new RegExp(escapedKey, "g"), value);
            }
            return processedNode;
          } else if (Array.isArray(node)) {
            return node.map(processChildren);
          } else if (node && node.props && node.props.children) {
            return {
              ...node,
              props: {
                ...node.props,
                children: processChildren(node.props.children)
              }
            };
          }
          return node;
        };
        setProcessedChildren(processChildren(children));
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  return <CodeGroup dropdown={dropdown}>{processedChildren}</CodeGroup>;
};

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Connected Accounts permet de lier un même profil utilisateur Auth0 à plusieurs comptes externes. Lorsque vous activez Connected Accounts pour un fournisseur externe pris en charge, Auth0 ajoute automatiquement le compte de ce fournisseur au profil utilisateur après la connexion réussie de l’utilisateur. Pour en savoir plus, consultez [Connected Accounts for Token Vault](/fr-CA/docs/secure/tokens/token-vault/connected-accounts-for-token-vault).
</Callout>

Auth0 prend en charge la liaison de comptes utilisateur provenant de divers <Tooltip tip="Fournisseur d’identité (IdP) : service qui stocke et gère les identités numériques." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=identity+providers">fournisseurs d’identité</Tooltip>. Cela permet à un utilisateur de s’authentifier à partir de n’importe lequel de ses comptes tout en étant reconnu par votre application et associé au même profil utilisateur.

<Card title="La disponibilité varie selon le forfait Auth0">
  Votre implémentation de connexion, ainsi que votre forfait Auth0 ou votre entente personnalisée, déterminent la disponibilité de cette fonctionnalité. Pour en savoir plus, consultez [Tarification](https://auth0.com/pricing).
</Card>

Par défaut, Auth0 traite toutes les identités séparément. Par exemple, si un utilisateur se connecte d’abord à la base de données Auth0, puis avec Google ou Facebook, Auth0 considérera ces deux tentatives comme deux utilisateurs distincts. Vous pouvez mettre en place une fonctionnalité permettant à un utilisateur de lier explicitement des comptes. Dans ce scénario, l’utilisateur se connecterait d’abord avec un fournisseur initial, par exemple Google. Votre application fournirait un lien ou un bouton lui permettant de lier un autre compte au premier. L’utilisateur cliquerait sur ce lien ou ce bouton, et votre application effectuerait un appel pour que, lorsque l’utilisateur se connecte avec le deuxième fournisseur, le deuxième compte soit lié au premier.

<div id="advantages-of-linking-accounts">
  ## Avantages de la liaison de comptes
</div>

* Permet aux utilisateurs de se connecter avec n’importe quel fournisseur d’identité sans avoir à créer un profil distinct pour chacun
* Permet aux utilisateurs inscrits d’utiliser une nouvelle connexion sociale ou <Tooltip tip="Passwordless : forme d’authentification qui ne repose pas sur un mot de passe comme premier facteur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=passwordless">Passwordless</Tooltip>, tout en continuant d’utiliser leur profil existant
* Permet aux utilisateurs inscrits au moyen de Passwordless de lier leur compte à un autre compte au profil plus complet
* Permet à vos applications de récupérer les données du profil utilisateur stockées dans diverses connexions

<div id="precautions">
  ## Précautions
</div>

Lier des comptes de façon non sécurisée peut permettre à des acteurs malveillants d’accéder à des comptes utilisateurs légitimes. Veuillez garder les points suivants à l’esprit :

Pour la liaison manuelle comme automatique de comptes, votre locataire doit demander l’authentification pour **les deux** comptes avant d’établir le lien.

De plus, **chaque** liaison manuelle de comptes doit inviter l’utilisateur à saisir ses identifiants.

<div id="how-it-works">
  ## Fonctionnement
</div>

Le processus de liaison de comptes fusionne deux profils utilisateur existants en un seul. Lors de la liaison de comptes, vous devez spécifier un **compte principal** et un **compte secondaire**.

L’exemple ci-dessous montre à quoi ressemblera le profil lié obtenu à partir des exemples de compte principal et de compte secondaire.

<AuthCodeGroup>
  ```json Profil du compte principal lignes développables theme={null}
  {
    "email": "your0@email.com",
    "email_verified": true,
    "name": "John Doe",
    "given_name": "John",
    "family_name": "Doe",
    "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"
      ]
    },
    ...
  }
  ```

  ```json Profil du compte secondaire lignes theme={null}
  {
    "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"
      ]
    },
    ...
  }
  ```

  ```json Profil lié lignes développables theme={null}
  {
    "email": "your0@email.com",
    "email_verified": true,
    "name": "John Doe",
    "given_name": "John",
    "family_name": "Doe",
    "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"
      ]
    },
    ...
  }
  ```
</AuthCodeGroup>

Notez que :

* Le `user_id` et toutes les autres propriétés principales du profil demeurent ceux de l’identité principale
* La première identité du tableau `user.identities` est l’identité principale
* Le compte secondaire est maintenant intégré au tableau `user.identities` du profil principal
* Les attributs du compte secondaire sont placés dans le champ `profileData` de l’identité correspondante dans le 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ées
* Les profils utilisateur ayant des identités associées ne sont pas fusionnés automatiquement
* Le compte secondaire est supprimé de la liste des utilisateurs
* Si vous supprimez le compte principal, le compte secondaire est également supprimé

<div id="metadata-merge">
  ### Fusion des métadonnées
</div>

Les métadonnées ne sont pas fusionnées automatiquement lors de la liaison de comptes. Si vous souhaitez les fusionner, vous devez le faire manuellement à l’aide du point de terminaison [`/users/patch_users_by_id`](https://auth0.com/docs/api/v2#!/Users/patch_users_by_id) de l’API de gestion.

Le [SDK Node.js d’Auth0 pour l’API v2](https://github.com/auth0/node-auth0/) est également disponible.

Pour en savoir plus, consultez [Comprendre le fonctionnement des métadonnées dans les profils utilisateur](/fr-CA/docs/manage-users/user-accounts/metadata)

<div id="scenarios">
  ## Scénarios
</div>

Il existe deux façons d’implémenter la liaison de comptes :

* Liaison de comptes initiée par l’utilisateur : permettez à vos utilisateurs de lier leurs comptes à l’aide d’un écran d’administration dans votre application.
* Liaison de comptes suggérée : identifiez les comptes associés à la même adresse courriel et invitez l’utilisateur à les lier dans votre application.

<div id="user-initiated-account-linking">
  ### Liaison de comptes initiée par l’utilisateur
</div>

En règle générale, la liaison de comptes est lancée par un utilisateur authentifié. Votre application doit prévoir une interface utilisateur, par exemple un bouton **Lier des comptes** sur la page de profil de l’utilisateur.

Pour en savoir plus sur la mise en œuvre de la liaison de comptes initiée par l’utilisateur dans une application monopage, consultez [Liaison de comptes côté client](/fr-CA/docs/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation). Pour en savoir plus sur la mise en œuvre de la liaison de comptes initiée par l’utilisateur dans une application Web traditionnelle, consultez [Liaison de comptes côté serveur](/fr-CA/docs/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation).

<div id="suggested-account-linking">
  ### Liaison de comptes suggérée
</div>

Vous pouvez repérer les comptes qui utilisent le même courriel et proposer aux utilisateurs de les lier. Par exemple, un utilisateur peut créer un compte Google avec `user@gmail.com`, puis ouvrir une session avec Facebook au moyen d’un compte associé au même courriel.

Dans ce cas, vous pouvez afficher aux utilisateurs la liste des comptes disponibles afin qu’ils puissent les lier, en s’authentifiant d’abord avec le compte auquel ils veulent rattacher l’autre compte.

Vous pouvez aussi utiliser l’[Account Link Extension](/fr-CA/docs/customize/extensions/account-link-extension) pour obtenir le même résultat.

<Warning>
  Auparavant, dans certains cas, vous pouviez utiliser des ID Tokens pour lier et dissocier des comptes d’utilisateur. Cette fonctionnalité devient obsolète. Vous devrez utiliser des Jetons d’accès dans tous les cas.
</Warning>

<div id="learn-more">
  ## En savoir plus
</div>

* [Lier des comptes d’utilisateur](/fr-CA/docs/manage-users/user-accounts/user-account-linking/link-user-accounts)
* [Dissocier des comptes d’utilisateur](/fr-CA/docs/manage-users/user-accounts/user-account-linking/unlink-user-accounts)
* [Liaison de comptes initiée par l’utilisateur : implémentation côté client](/fr-CA/docs/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation)
* [Liaison de comptes d’utilisateur : implémentation côté serveur](/fr-CA/docs/manage-users/user-accounts/user-account-linking/suggested-account-linking-server-side-implementation)
