> ## 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 d’utilisateur dans Auth0 provenant de différents fournisseurs d’identité.

# Liaison des comptes d’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 une connexion réussie. Pour en savoir plus, consultez [Connected Accounts for Token Vault](/docs/fr-ca/secure/tokens/token-vault/connected-accounts-for-token-vault).
</Callout>

Auth0 prend en charge la liaison de comptes d’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="/docs/fr-ca/glossary?term=identity+providers">fournisseurs d’identité</Tooltip>. Ainsi, un utilisateur peut s’authentifier avec 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 mise en œuvre de connexion, ainsi que votre forfait Auth0 ou votre entente personnalisée, déterminent si cette fonctionnalité est offerte. Pour en savoir plus, consultez [Pricing](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, ces deux tentatives apparaîtront pour Auth0 comme deux utilisateurs distincts. Vous pouvez implémenter 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 ensuite un lien ou un bouton lui permettant de lier un autre compte au premier. L’utilisateur cliquerait sur ce lien ou ce bouton, puis votre application ferait une requête afin que, lorsque l’utilisateur se connecte avec le deuxième fournisseur, ce 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 devoir créer un profil distinct pour chacun
* Permet aux utilisateurs inscrits d’utiliser une nouvelle connexion sociale ou <Tooltip tip="Sans mot de passe : forme d’authentification qui ne repose pas sur un mot de passe comme premier facteur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=passwordless">sans mot de passe</Tooltip> tout en continuant d’utiliser leur profil existant
* Permet aux utilisateurs qui se sont inscrits au moyen d’une connexion sans mot de passe de la lier à un compte dont le profil est plus complet
* Permet à vos applications de récupérer des données de profil utilisateur stockées dans diverses connexions

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

La liaison non sécurisée de comptes peut permettre à des personnes malveillantes d’accéder à des comptes d’utilisateur légitimes. Veuillez tenir compte de ce qui suit :

Pour la liaison de comptes, qu’elle soit manuelle ou automatique, votre tenant devrait demander une authentification pour **les deux** comptes avant que la liaison soit effectuée.

De plus, **chaque** liaison de compte manuelle devrait inviter l’utilisateur à saisir ses justificatifs d’identité.

<div id="how-it-works">
  ## Comment ça fonctionne
</div>

Le processus de liaison de comptes fusionne deux profils utilisateur existants en un seul. Lors de la liaison de comptes, il faut préciser 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 extensibles 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 extensibles 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é dans l’`array` `user.identities` est l’identité principale
* Le compte secondaire est maintenant intégré à l’`array` `user.identities` du profil principal
* Les attributs du compte secondaire sont placés dans le champ `profileData` de l’identité correspondante à l’intérieur de l’array
* 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 aucune fusion automatique des profils utilisateur avec les identités associées
* Le compte secondaire est retiré 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 de l’endpoint de l’API Management [`/users/patch_users_by_id`](https://auth0.com/docs/api/v2#!/Users/patch_users_by_id).

Le [SDK Auth0 Node.js pour APIv2](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](/docs/fr-ca/manage-users/user-accounts/metadata)

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

Il existe deux façons d’implanter la liaison de comptes :

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

<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 initiée par un utilisateur authentifié. Votre application doit offrir une UI, par exemple un bouton **Lier les comptes** sur la page de profil de l’utilisateur.

Pour en savoir plus sur l’implémentation de la liaison de comptes initiée par l’utilisateur dans une application monopage, consultez [Liaison de comptes côté client](/docs/fr-ca/manage-users/user-accounts/user-account-linking/user-initiated-account-linking-client-side-implementation). Pour en savoir plus sur l’implémentation de la liaison de comptes initiée par l’utilisateur dans une application Web classique, consultez [Liaison de comptes côté serveur](/docs/fr-ca/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 la même adresse courriel et inviter les utilisateurs à les lier. Par exemple, un utilisateur peut créer un compte Google avec `user@gmail.com`, puis se connecter avec Facebook à l’aide d’un compte associé à la même adresse courriel.

Si cela se produit, vous pouvez présenter aux utilisateurs la liste des comptes disponibles afin qu’ils puissent les lier, en s’authentifiant d’abord avec le compte auquel ils souhaitent les associer.

Vous pouvez également utiliser l’[extension Account Link](/docs/fr-ca/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é est en voie de dépréciation. Vous devrez utiliser des Access Tokens dans tous les cas.
</Warning>

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

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