> ## 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.

# Activer la migration automatique vers Auth0 à partir d’un répertoire d’utilisateurs externe

> Migrez progressivement les utilisateurs de votre répertoire d’utilisateurs externe vers Auth0 à mesure qu’ils se connectent en activant le mode d’importation de votre connexion de base de données personnalisée.

Lorsque vous utilisez une [connexion de base de données personnalisée](/docs/fr-ca/authenticate/database-connections/custom-db), Auth0 prend en charge la migration automatique (aussi appelée *migration progressive* ou *migration différée*) des utilisateurs de votre répertoire d’utilisateurs externe vers le répertoire d’utilisateurs d’Auth0.

Lorsqu’un utilisateur s’authentifie au moyen d’une connexion de base de données personnalisée configurée pour l’importation vers Auth0, le processus suivant s’exécute :

<Frame>
  <img src="https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/JAHBs6NzVRf0N5iXI7Wby/d0bfa23a1485aeb5d64bd52fe977d4fe/import-export-diagram.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=fc096bf75ba83a70138b408bcb952769" alt="Diagramme de migration des utilisateurs" width="2726" height="2210" data-path="docs/images/cdy7uua7fh8z/JAHBs6NzVRf0N5iXI7Wby/d0bfa23a1485aeb5d64bd52fe977d4fe/import-export-diagram.png" />
</Frame>

Si l’utilisateur n’existe pas dans le répertoire d’utilisateurs d’Auth0, Auth0 l’authentifie auprès de votre répertoire d’utilisateurs externe et, en cas de réussite, le crée dans le répertoire d’utilisateurs d’Auth0 en utilisant le même ID et le même mot de passe fournis lors de l’authentification.

Ainsi, vos utilisateurs existants sont migrés vers Auth0 lors de leur première connexion et n’ont pas besoin de réinitialiser leur mot de passe. Les nouveaux utilisateurs sont ajoutés directement au répertoire d’utilisateurs d’Auth0.

<div id="start-the-migration">
  ## Commencer la migration
</div>

<Steps>
  <Step title="Prérequis">
    Pour configurer la migration automatique, vous avez besoin de ce qui suit :

    * Une [connexion de base de données personnalisée](/docs/fr-ca/authenticate/database-connections/custom-db/create-db-connection) utilisant votre répertoire d’utilisateurs externe.
  </Step>

  <Step title="Activer la migration">
    Dans [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database), sélectionnez la connexion de base de données personnalisée.

    Dans l’onglet **Settings**, activez **Import Users to Auth0**, puis sélectionnez **Save**.
  </Step>

  <Step title="Configurer les scripts d’action de base de données">
    Les [scripts d’action de base de données](/docs/fr-ca/authenticate/database-connections/custom-db/templates) sont du code que vous écrivez et qu’Auth0 exécute lorsqu’il interagit avec votre répertoire d’utilisateurs externe, par exemple lorsqu’un utilisateur se connecte ou s’inscrit.

    Ensuite, dans l’onglet **Custom Database**, repérez la section **Database Action Scripts**.

    <Frame>
      <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4LBIvvjaABo51It4eVCmX3/4ef14765c79cc5b7ecfa3f3155caa9eb/Screen_Shot_2021-05-18_at_8.54.55_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=7886c762d1e9f81d707f9e53bb330dde" alt="Onglet Custom Database de Dashboard Authentication Database Connection, section Database Action Scripts" width="2030" height="1366" data-path="docs/images/cdy7uua7fh8z/4LBIvvjaABo51It4eVCmX3/4ef14765c79cc5b7ecfa3f3155caa9eb/Screen_Shot_2021-05-18_at_8.54.55_PM.png" />
    </Frame>

    Lorsque vous activez la migration automatique, vous devez implémenter deux scripts :

    * Le [script `login()`](/docs/fr-ca/authenticate/database-connections/custom-db/templates/login), qui s’exécute lorsqu’un utilisateur qui ne figure pas dans la base de données Auth0 tente de se connecter.

    * Le [script `getUser()`](/docs/fr-ca/authenticate/database-connections/custom-db/templates/get-user), qui s’exécute dans des cas comme les inscriptions et les changements de mot de passe. Les données renvoyées par le script `getUser()` sont migrées vers le nouveau profil utilisateur Auth0.
  </Step>
</Steps>

<div id="manage-external-user-store-data-during-migration">
  ## Gérer les données du répertoire d’utilisateurs externe pendant la migration
</div>

Nous recommandons les pratiques exemplaires suivantes pour gérer les données utilisateur dans votre répertoire d’utilisateurs externe lors d’une migration automatique :

* Les utilisateurs restent dans votre répertoire d’utilisateurs externe, à moins que vous ne les archiviez ou ne les supprimiez explicitement. Si un utilisateur est migré vers Auth0 puis supprimé d’Auth0, mais qu’il demeure dans votre répertoire d’utilisateurs externe, il est possible qu’il tente de se connecter et soit migré de nouveau.

  Nous recommandons de marquer les identités utilisateur de votre répertoire d’utilisateurs externe comme ayant été migrées avant l’exécution des scripts d’action de base de données personnalisée Login ou Get Users, afin d’éviter la recréation involontaire d’utilisateurs supprimés intentionnellement.

* En général, les utilisateurs sont créés dans le répertoire d’utilisateurs d’Auth0 après l’exécution du [script d’action Login](/docs/fr-ca/authenticate/database-connections/custom-db/templates/login). Plutôt que de supprimer les utilisateurs de votre répertoire d’utilisateurs externe directement dans le script Login, nous recommandons de le faire dans le cadre d’un processus distinct afin d’éviter toute suppression accidentelle en cas d’erreur pendant la migration.

<div id="complete-the-migration">
  ## Terminer la migration
</div>

<Steps>
  <Step title="Vérifier que la migration est terminée">
    Vérifiez que la migration est terminée en vous assurant que tous les utilisateurs de votre répertoire d’utilisateurs externe se trouvent dans le répertoire d’utilisateurs d’Auth0.

    Vous pouvez afficher tous les utilisateurs du répertoire d’utilisateurs d’Auth0 de deux façons :

    * Dans [Auth0 Dashboard > User Management > Users](https://manage.auth0.com/#/users).

    * Au moyen du [endpoint List or Search users](/docs/fr-ca/api/management/v2/users/get-users) de la Management API (`GET /users`).
  </Step>

  <Step title="Déconnecter le répertoire d’utilisateurs externe">
    Une fois que vous avez confirmé que tous les utilisateurs ont été migrés, vous pouvez déconnecter votre répertoire d’utilisateurs externe en mettant à jour vos scripts d’action de base de données pour qu’ils n’effectuent aucune opération. Cela empêche Auth0 de se connecter à votre répertoire d’utilisateurs externe pour authentifier les utilisateurs.

    <Warning>
      Laissez l’option **Import Users to Auth0** activée. Ce paramètre indique à Auth0 d’utiliser le répertoire d’utilisateurs d’Auth0 pour votre connexion de base de données personnalisée (plutôt que d’utiliser uniquement votre répertoire d’utilisateurs externe par l’intermédiaire de vos scripts d’action de base de données).
    </Warning>

    Dans [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database), sélectionnez votre connexion de base de données. Dans l’onglet **Custom Database**, repérez la section **Database Action Scripts**.

    Mettez à jour le script **Login** :

    ```javascript lines theme={null}
    function login (email, password, callback) {
        return callback(null, null);
    }
    ```

    Mettez à jour le script **Get User** :

    ```javascript lines theme={null}
    function getByEmail (email, callback) {
        return callback(null, null);
    }
    ```
  </Step>
</Steps>

<div id="troubleshoot-user-migration-issues">
  ## Résoudre les problèmes liés à la migration des utilisateurs
</div>

Si vous rencontrez des problèmes avec la migration automatique, consultez d’abord les [bonnes pratiques relatives aux connexions de base de données personnalisées et aux scripts d’action](/docs/fr-ca/authenticate/database-connections/custom-db/custom-database-connections-scripts).

<div id="duplicated-user-or-user-already-exists">
  ### Utilisateur en double ou utilisateur existe déjà
</div>

Pendant le processus de migration de l’utilisateur, Auth0 crée d’abord un profil utilisateur partiel dans un répertoire d’utilisateurs interne, puis crée un profil utilisateur complet dans votre connexion Database. Si un problème survient et empêche la création de ce profil utilisateur complet, vous pourriez obtenir l’erreur « The user already exists ».

Une erreur `DUPLICATED_USER` indique que l’utilisateur existe dans le répertoire d’utilisateurs interne d’Auth0, mais pas dans votre tenant. Vous pourriez obtenir cette erreur si :

* Vous essayez d’utiliser plus d’une méthode de migration (par exemple, la migration automatique suivie d’une importation en bloc d’utilisateurs).
* Vous supprimez un utilisateur de votre connexion Database, puis vous essayez de recréer cet utilisateur.
* Vous tentez de créer un nouvel utilisateur dans votre connexion Database alors que l’utilisateur existe déjà dans votre répertoire d’utilisateurs externe.

Pour résoudre les erreurs `DUPLICATED_USER` ou « The user already exists » :

1. Vérifiez les instructions `console.log()` dans les [Actions Real-time Logs](/docs/fr-ca/customize/actions/actions-real-time-logs).

2. Supprimez l’utilisateur à l’aide du point de terminaison [Delete a User](https://auth0.com/docs/api/management/v2#!/Users/delete_users_by_id) de la Management API.

3. Supprimez l’utilisateur à l’aide du point de terminaison [Delete a Connection User](https://auth0.com/docs/api/management/v2#!/Connections/delete_users_by_email) de la Management API.

4. Demandez à l’utilisateur de se connecter ou de changer son mot de passe pour relancer la migration.

<div id="missing-metadata">
  ### Métadonnées manquantes
</div>

Si un utilisateur est interrompu pendant le flux de connexion ou de changement de mot de passe qui lance le processus de migration, Auth0 pourrait ne pas être en mesure de transférer ses métadonnées (`user_metadata` ou `app_metadata`) avec ses autres données de profil.

Vous pouvez atténuer ce scénario en créant une [Action](/docs/fr-ca/customize/actions) qui vérifie si le profil de l’utilisateur ne contient pas de métadonnées, les récupère depuis le magasin d’utilisateurs externe, puis les stocke dans Auth0.
