Skip to main content
Lorsque vous utilisez une connexion de base de données personnalisée, 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 :
Diagramme de migration des utilisateurs
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.

Commencer la migration

1

Prérequis

Pour configurer la migration automatique, vous avez besoin de ce qui suit :
2

Activer la migration

Dans Auth0 Dashboard > Authentication > 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.
3

Configurer les scripts d’action de base de données

Les scripts d’action de base de données 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.
Onglet Custom Database de Dashboard Authentication Database Connection, section Database Action Scripts
Lorsque vous activez la migration automatique, vous devez implémenter deux scripts :
  • Le script 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(), 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.

Gérer les données du répertoire d’utilisateurs externe pendant la migration

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

Terminer la migration

1

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 :
2

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.
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).
Dans Auth0 Dashboard > Authentication > 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 :
Mettez à jour le script Get User :

Résoudre les problèmes liés à la migration des utilisateurs

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.

Utilisateur en double ou utilisateur existe déjà

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.
  2. Supprimez l’utilisateur à l’aide du point de terminaison Delete a User de la Management API.
  3. Supprimez l’utilisateur à l’aide du point de terminaison Delete a Connection User de la Management API.
  4. Demandez à l’utilisateur de se connecter ou de changer son mot de passe pour relancer la migration.

Métadonnées manquantes

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