Skip to main content
La fonctionnalité migration des utilisateurs repose sur une fonctionnalité de base d’Auth0 appelée Custom Databases, combinée à des points de terminaison URL dans le plugin Login by Auth0, afin de permettre aux utilisateurs de s’authentifier avec des comptes d’utilisateur WordPress existants. Pour en savoir plus sur Custom Databases, consultez Custom Database Connections.

Fonctionnement

Lorsque vous activez la migration des données, le plugin expose deux points de terminaison sécurisés qui permettent à Auth0 d’authentifier les utilisateurs à l’aide de comptes WordPress. Ces points de terminaison sont protégés par un jeton secret et peuvent être configurés pour n’autoriser que les adresses IP utilisées par Auth0. Le flux de connexion se déroule comme suit :
  1. Un utilisateur tente de se connecter à l’aide d’un formulaire de connexion Auth0 (intégré à votre site ou hébergé par Auth0).
  2. Si Auth0 ne trouve pas d’utilisateur associé aux informations d’identification fournies dans votre connexion de base de données, il envoie une requête au point de terminaison de migration sur votre site WordPress avec les informations d’identification de l’utilisateur et le jeton de migration.
  3. Le plugin trouve un utilisateur dans votre base de données WordPress à l’aide du nom d’utilisateur ou de l’adresse courriel fournis et vérifie le mot de passe.
  4. Si l’utilisateur peut être authentifié avec succès, Auth0 crée l’utilisateur dans la connexion de base de données de votre site, l’authentifie et le connecte.
  5. La prochaine fois que l’utilisateur se connectera, il utilisera son compte Auth0, et le point de terminaison de migration sera ignoré.
La migration des utilisateurs doit être configurée lorsque le site est connecté à Auth0 pour la première fois. Toute tentative d’activer ou de désactiver des scripts de base de données personnalisés pour une connexion de base de données qui a déjà eu des utilisateurs échouera. Consultez la section Dépannage pour en savoir plus sur le passage d’un mode à l’autre.

Mise en place et configuration

La façon la plus simple de mettre en place la migration des utilisateurs consiste à utiliser l’Assistant de configuration lors de la première installation du plugin. Pour en savoir plus sur le processus, consultez Install Login by Auth0. Si l’Assistant de configuration de la migration des utilisateurs n’a pas pu s’exécuter jusqu’au bout, ou si vous souhaitez voir le processus plus en détail, suivez les étapes ci-dessous. Encore une fois, on repart ici de zéro avec une connexion de base de données qui ne contient aucun utilisateur. Le processus suivant doit être effectué sur un site sans trafic ou avec le mode maintenance activé.
  1. Créez et configurez correctement une application, puis créez et activez une connexion de base de données vide pour l’application. Il peut s’agir de la même configuration que celle créée par le processus standard du Setup Wizard, ou vous pouvez tout créer à partir de zéro. Pour en savoir plus sur le Setup Wizard, consultez Installer Login by Auth0.
  2. Dans l’écran Auth0 > Settings de WordPress, assurez-vous que le Domain, le Client ID et le Client Secret de l’application sont bien enregistrés dans les bons champs de l’onglet Basic.
  3. Dans la vue Advanced, activez le paramètre User Migration Endpoints, puis sélectionnez Save Changes. Si vous utilisez des paramètres définis par des constantes, définissez AUTH0_ENV_MIGRATION_WS sur true et AUTH0_ENV_MIGRATION_TOKEN sur une chaîne aléatoire sécurisée d’au moins 16 chiffres, sans apostrophes ni barres obliques inverses.
  4. Sous les paramètres, vous devriez maintenant voir un Security Token. Gardez cette page ouverte, car vous aurez besoin de cette valeur plus tard dans le processus.
  5. Dans le Auth0 Dashboard, accédez à la connexion de base de données que vous voulez utiliser et activez Requires Username et Import Users to Auth0.
  6. Sélectionnez la vue Custom Database, puis activez Use my own database.
  7. Vous devriez voir deux onglets sous ce paramètre dans Database Action Scripts : un pour Login et un pour Get User.
  8. Sélectionnez la vue Login, supprimez le code existant, copiez le code db-login.js du GitHub repository, puis collez-le dans l’éditeur de code.
  9. Cette étape s’applique aux versions 3.10.0 et antérieures : Repérez {THE_WS_URL} et remplacez-le par l’URL du site de votre instance WordPress, suivie de /index.php?a0_action=migration-ws-login. L’URL du site se trouve dans l’écran Settings > General de wp-admin. Vous pouvez la tester en collant l’URL complète dans votre navigateur. Vous devriez voir {"status":401,"error":"Unauthorized"}.
  10. Cette étape s’applique aux versions 3.10.0 et antérieures : Repérez {THE_WS_TOKEN} et remplacez-le par le jeton qui apparaît sous le paramètre User Migration Endpoints.
  11. Il ne devrait y avoir aucune erreur dans l’éditeur. Si tout semble correct, cliquez sur Save en haut.
  12. Cette étape s’applique à la version 3.11.0 et aux versions ultérieures : Descendez jusqu’à Paramètres et ajoutez les variables de configuration suivantes :
    • endpointUrl défini sur l’URL du site de votre instance WordPress (wp-admin > Réglages > Général > champ “Adresse web du site”), suivie de /index.php?a0_action=.
    • migrationToken défini sur la valeur du jeton de sécurité indiquée à l’étape 4 ci-dessus.
    • userNamespace défini sur le nom de votre Application dans Auth0 ou sur toute autre valeur contenant uniquement des lettres, des chiffres et des tirets.
    Paramètres de la base de données personnalisée du plugin WordPress
  13. Cliquez sur le bouton Try en haut et utilisez un compte d’utilisateur WordPress valide dans le formulaire qui s’affiche. Vous devriez voir “Le profil est”, suivi des données de l’utilisateur. Sinon, consultez la section Dépannage ci-dessous.
  14. Sélectionnez la vue Get User, supprimez le code existant, copiez le code db-get-user.js du dépôt GitHub, puis collez-le dans l’éditeur de code.
  15. Cette étape s’applique à la version 3.10.0 et aux versions antérieures : Repérez {THE_WS_URL} et remplacez-le par l’URL du site de votre instance WordPress, suivie de /index.php?a0_action=migration-ws-get-user. L’URL du site se trouve dans l’écran Settings > General de wp-admin. Vous pouvez la tester en collant l’URL complète dans votre navigateur. Vous devriez voir {"status":401,"error":"Unauthorized"}.
  16. Cette étape s’applique à la version 3.10.0 et aux versions antérieures : Repérez {THE_WS_TOKEN} et remplacez-le par le token affiché dans le paramètre User Migration Endpoints.
  17. Il ne devrait y avoir aucune erreur dans l’éditeur. Si tout semble bon, cliquez sur Save.
  18. Cliquez sur le bouton Try en haut et utilisez l’adresse courriel d’un compte d’utilisateur WordPress valide dans le formulaire qui s’affiche. Vous devriez voir “Le profil est”, suivi des données de l’utilisateur. Sinon, consultez la section Dépannage ci-dessous.
  19. Dans une nouvelle session de navigateur, accédez à une page de connexion sur le site WordPress et essayez de vous connecter (l’utilisateur ne doit pas déjà exister dans la base de données). Vous remarquerez que le processus de connexion prend un peu plus de temps que d’habitude au départ, mais il devrait réussir. Les connexions suivantes seront plus rapides.
  20. (FACULTATIF) Pour activer une sécurité supplémentaire pour les points de terminaison de migration, accédez à l’écran Auth0 > Settings dans WordPress, activez l’option, puis cliquez sur Save Changes. Essayez de vous connecter avec un autre utilisateur pour vérifier qu’Auth0 peut toujours atteindre les points de terminaison.
À ce stade, la configuration de la migration des utilisateurs est terminée, et les utilisateurs WordPress existants seront migrés au fur et à mesure vers la connexion de base de données Auth0.

Dépannage

Les problèmes liés à la migration des utilisateurs proviennent généralement de quelques causes :
  • URL ou jeton incorrect dans les scripts de base de données personnalisée.
  • Liste d’autorisation d’IP activée, mais avec des adresses IP incorrectes.
  • Points de terminaison restreints ou mis en cache sur votre instance WordPress.
La meilleure façon de commencer le dépannage est d’utiliser le bouton Try du script Login dans la vue Custom Database de la Database Connection utilisée dans Auth0 Dashboard > Authentication > Database. Voici les messages d’erreur que vous pourriez voir et les étapes à suivre pour corriger le problème.

Unexpected token < in JSON at position 0

Cela signifie que le script personnalisé ne reçoit pas les données dans un format qu’il peut utiliser. Le problème est probablement causé par une URL de point de terminaison incorrecte dans le script de base de données. D’abord, copiez l’URL à la ligne 10 du script et collez-la dans votre navigateur. Si le point de terminaison est correct, il devrait afficher l’un des deux messages ci-dessous : {"status":401,"error":"Unauthorized"} // ou {"status":403,"error":"Forbidden"} Si vous voyez plutôt la page d’accueil ou une erreur 404, l’URL est incorrecte. Cherchez l’URL de votre site sous Settings > General > Site URL dans l’interface d’administration WordPress. Ajoutez /index.php?a0_action=migration-ws-login à la fin pour le script Login et /index.php?a0_action=migration-ws-get-user à la fin pour le script Get User.
  • Pour les versions 3.10.0 et antérieures : La valeur de l’URL devrait apparaître dans le script lui-même comme premier paramètre de l’appel request.post.
  • Pour les versions 3.11.0 et ultérieures : La valeur du token devrait être enregistrée dans une variable de configuration. Ajoutez ce qui suit à la première ligne de la fonction et utilisez le bouton Try pour voir ce qui est stocké dans endpointUrl :
callback(null, configuration); Si vous êtes certain que les URL sont correctes et que le problème persiste, vérifiez auprès de votre hébergeur pour vous assurer que ces URL ne sont ni mises en cache ni restreintes d’aucune façon.

Mauvaise adresse courriel ou mauvais mot de passe

C’est l’erreur affichée par défaut lorsque quelque chose d’autre tourne mal. Le plus simple pour diagnostiquer le problème est d’afficher temporairement l’erreur renvoyée (celles-ci sont opaques par défaut afin d’éviter d’afficher quoi que ce soit qui pourrait donner des indices aux attaquants). À la ligne 30 du script Login, remplacez : callback(null); par : callback(wpUser.error); Enregistrez le script, puis réessayez la connexion. Vous devriez voir l’un des messages suivants et être en mesure de cerner le problème à l’aide des étapes ci-dessous. Une fois le problème résolu, remettez le script comme avant.

Accès interdit

Cela signifie que les points de terminaison de migration sont désactivés dans votre installation WordPress. Dans WordPress, allez à Auth0 > Paramètres > Avancé et activez User Migration Points de terminaison. Assurez-vous que le jeton qui s’y affiche est le même que celui utilisé dans les deux scripts de base de données personnalisés :
  • Pour les versions 3.10.0 et antérieures : la valeur du jeton doit apparaître dans le script lui-même après access_token:
  • Pour les versions 3.11.0 et ultérieures : la valeur du jeton doit être enregistrée dans une variable de configuration. Ajoutez ce qui suit à la première ligne de la fonction et utilisez le bouton Try pour voir ce qui est enregistré dans migrationToken :
callback(null, configuration);

Non autorisé

Cela signifie que la liste d’autorisation IP pour la migration est activée, mais que l’adresse IP entrante ne s’y trouve pas. Juste sous le script Login, vous devriez voir une liste d’adresses IP :
Migration d’utilisateurs WordPress - Adresses IP d’Auth0
Assurez-vous que toutes ces adresses IP figurent dans WordPress, sous Auth0 > Paramètres > Avancé du plugin :
Migration d’utilisateurs WordPress - Liste blanche d’IP
Si une ou plusieurs des adresses IP affichées dans Auth0 ne figurent pas dans WordPress, ajoutez celles qui manquent dans le champ et enregistrez la page des paramètres. Aussi, créez une publication dans l’Auth0 Community (et ajoutez-y l’étiquette “wordpress”) contenant la ou les adresses IP manquantes, afin que nous puissions régler le problème.

Non autorisé : en-tête Authorization manquant

Le est soit absent du script de base de données (ligne 16), soit votre serveur ne traite pas correctement les en-têtes. Vérifiez le script Login et assurez-vous que le token existe et correspond à celui dans WordPress. Si le token est présent et valide, vous devrez communiquer avec votre hébergeur pour activer l’analyse de l’en-tête Authorization. Pour obtenir de l’aide sur le dépannage du serveur, consultez Apache 2.4 + PHP-FPM et les en-têtes Authorization sur stackoverflow.com. Pour voir comment le token est récupéré, consultez le code du Plugin dans le dépôt GitHub.

Jeton invalide

Le jeton de sécurité du script de base de données est incorrect. Vérifiez la ligne 16 du script Login et assurez-vous que le jeton correspond à celui qui se trouve dans WordPress.

Identifiants invalides

L’adresse courriel et/ou le mot de passe utilisé est incorrect. Vérifiez que vous avez saisi la bonne adresse courriel et que le mot de passe est correct. Vous pouvez réinitialiser le mot de passe de l’utilisateur afin de vous assurer qu’il s’agit du bon.

Impossible de modifier l’adresse courriel ou données utilisateur incorrectes

Si vous utilisez plus d’une connexion de base de données personnalisée dans votre tenant Auth0 et que vous n’arrivez pas à modifier l’adresse courriel, ou que des données utilisateur sont enregistrées pour le mauvais utilisateur, il est probable que des ID utilisateur se chevauchent dans Auth0. Ce problème a été corrigé pour les nouveaux sites qui installent la version 3.11.0, mais pour les connexions créées auparavant, il faudra le corriger manuellement en faisant l’une des choses suivantes :
  • Si vous n’avez aucune donnée utilisateur enregistrée à conserver (si vous utilisez seulement la connexion pour prendre en charge le login et que vous n’enregistrez aucune métadonnée), vous pouvez créer une nouvelle connexion de base de données personnalisée en suivant les étapes ci-dessus (avec les notes de la version 3.11.0) et basculer l’Application vers cette nouvelle connexion (assurez-vous de désactiver l’ancienne connexion). La migration redémarrera et il n’y aura aucune incidence sur l’expérience utilisateur.
  • Si vous avez des données dans Auth0 qui doivent être conservées, vous pouvez utiliser notre User Import/Export Extension pour ajuster les données utilisateur.
    1. Créez une nouvelle connexion de base de données personnalisée en suivant les étapes ci-dessus (avec les notes de la version 3.11.0).
    2. Exportez tous les utilisateurs de la connexion existante (nous vous recommandons de mettre votre site en mode maintenance pendant le basculement afin qu’aucun utilisateur ne soit oublié).
    3. Modifiez tous les ID utilisateur pour y ajouter l’espace de noms utilisé lors de la création de la nouvelle connexion. Les ID utilisateur devraient passer de quelque chose comme auth0|123 à auth0|Your-WP-Site-Name|123. Ajustez tous les autres champs nécessaires pour respecter le schéma d’importation. Pour en savoir plus, consultez Schéma de base de données et exemples pour l’importation en bloc d’utilisateurs.
    4. Activez la nouvelle connexion et désactivez l’ancienne pour votre application.
    5. Importez les nouvelles données utilisateur dans la nouvelle connexion et effectuez un test.
  • Si vous avez un compte payant, vous pouvez communiquer avec notre équipe de soutien pour exécuter un script de mise à jour de base de données afin de convertir les ID utilisateur en version avec espace de noms et d’ajouter en même temps l’espace de noms à votre script de base de données (étape 12 dans Configuration et mise en route ci-dessus).