Scénarios de migration des utilisateurs
Voici quelques exemples de scénarios de migration d’utilisateurs de Gigya, Okta et Stormpath vers Auth0. Chacun de ces scénarios suppose que vous avez des comptes sur ces plateformes.
Prérequis
Configurez la connexion à la base de données personnalisée.
Créez une nouvelle connexion à la base de données dans Dashboard > Authentification > Base de données. Veillez à sélectionner la vue Base de données personnalisée et à activer le bouton à bascule Utiliser ma propre base de données.
Connectez la base de données à l’application : Dans vos réglages de connexion à la base de données, sélectionnez la vue Applications. Localisez la section Applications utilisant cette connexion et activez la connexion à la base de données pour chaque application.
Scénario 1 : Migrer les utilisateurs de Gigya vers Auth0
Exportez les utilisateurs de Gigya : Utilisez Gigya’s IdentitySync pour transformer et exporter les données des utilisateurs afin qu’elles correspondent à un schéma cible. Pour en savoir plus sur ce processus, voir Gigya IdentitySync : Utiliser IdentitySync.
Suivez les instructions pour transformer les données utilisateur de votre base de données Gigya dans le schéma correct et exporter les données transformées au format JSON.
Importez vos utilisateurs Gigya dans Auth0 : Vous pouvez importer des utilisateurs avec l’extension Importation/Exportation des utilisateurs ou Management API.
L’extension Importation/Exportation des utilisateurs : Allez sur Auth0 Dashboard > Extensions, sélectionnez l’extension Importation/Exportation des utilisateurs et installez-la. Une fois l’extension installée, vous pouvez cliquer dessus pour ouvrir une interface d’importation/exportation.
Glissez votre fichier JSON d’utilisateurs Gigya exportés dans la zone de téléchargement désignée, et sélectionnez la base de données que vous avez créée précédemment. Sélectionnez Commencer à importer des utilisateurs pour commencer votre importation. Pour en savoir plus, voir l’extension Importation/Exportation des utilisateurs.
Management API : Pour importer vos utilisateurs dans Auth0, créez une tâche. Pour des instructions détaillées, lisez Importations d’utilisateurs en lot.
Scénario 2 : Migrer les utilisateurs d’Okta vers Auth0
Activez l’importation d’utilisateurs : Allez sur Auth0 Dashboard > Authentification > Base de données et sélectionnez votre connexion à la base de données. Dans ses Paramètres, activez l’option Importer les utilisateurs vers Auth0.
Créez le Connexion : Le script Connexion est exécuté lorsqu’un utilisateur tente de se connecter, mais que son compte n’est pas trouvé dans la base de données Auth0. Vous devez créer un script qui appellera le point de terminaison Okta Authentification primaire, en transmettant le courriel et le mot de passe comme paramètres
nom d’utilisateur
etmot de passe
. En cas d’authentification réussie, Okta renvoie un objet Transaction d’authentification dans les ressources intégrées. Vous pouvez alors extraire les informations de l’utilisateur et les transmettre à Auth0 dans la fonction de rappel.Dans la vue Base de données personnalisée de votre connexion à la base de données, localisez Scripts d’action de base de données et sélectionnez Connexion.
Cliquez sur le bouton Essayer au-dessus du script pour tester le fonctionnement du script.function login (email, password, callback) { // Replace {yourOktaDomain} with your own Okta domain var url = 'https:/{yourOktaDomain}/api/v1/authn'; // Make the POST request to authenticate a user request({ url: url, method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: { username: email, password: password, options: { multiOptionalFactorEnroll: false, warnBeforePasswordExpired: false } }, json: true }, function (error, response, body) { // Ensure we have a successful response if (response.statusCode !== 200) return callback(); // Get the user from the response body var user = body._embedded.user; // Set the data we want to store in Auth0 and migrate the user return callback(null, { user_id : user.id, username: user.profile.login, email: user.profile.login, // We set the users email_verified to true as we assume if they were a valid // user in Okta, they have already verified their email // If this field is not set, the user will get an email asking them to verify // their account email_verified: true, name: user.profile.firstName + ' ' + user.profile.lastName }); }); }
Was this helpful?
/Créez le Obtenir l’utilisateur : Le script Obtenir l’utilisateur est exécuté lorsque l’utilisateur tente de réinitialiser son mot de passe mais que son compte n’est pas trouvé dans la base de données Auth0. Vous devrez créer un script qui appelle le point de terminaison Okta Obtenir un utilisateur avec une connexion, en utilisant le courriel de l’utilisateur comme paramètre
Connexion
. Vous devrez également Créer un jeton API qui doit être transmis à ce point de terminaison dans l’en-têteAutorisation
. En cas de succès, Okta renverra un Objet utilisateur contenant les informations de l’utilisateur. Une fois de plus, vous pouvez extraire les informations de l’utilisateur et les transmettre à Auth0 dans la fonction de rappel.Dans la vue Base de données personnalisée de votre connexion à la base de données, localisez Scripts d’action de base de données et sélectionnez Obtenir l’utilisateur.
Cliquez sur le bouton Essayer au-dessus du script pour tester le fonctionnement du script.function getByEmail(email, callback) { // Replace {yourOktaDomain} with your own Okta domain var url = 'https://{yourOktaDomain}/api/v1/users/' + encodeURIComponent(email); // Make a GET request to find a user by email // Replace {yourOktaApiToken} with an Okta API Token // (see https://developer.okta.com/docs/api/getting_started/getting_a_token.html) request({ url: url, method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'SSWS ' + '{yourOktaApiToken}' }, json: true }, function (error, response, body) { // Ensure we have a successful response if (response.statusCode !== 200) return callback(); // Set the data we want to store in Auth0 and migrate the user return callback(null, { user_id: body.id, username: body.profile.login, email: body.profile.login, email_verified: true, name: body.profile.firstName + ' ' + body.profile.lastName }); }); }
Was this helpful?
/Testez la connexion à la base de données personnalisée : Cliquez sur Try connection (Essayer la connexion). Le gadget logiciel Auth0 Lock apparaît. Saisissez l’adresse courriel et le mot de passe de l’utilisateur Okta, puis cliquez sur Log In (Connexion). Vous devriez voir une page Web indiquant que la connexion fonctionne, avec des informations sur l’utilisateur.
Pour voir les utilisateurs nouvellement importés, allez sur Auth0 Dashboard > Gestion des utilisateurs > Utilisateurs.
Scénario 3 : Migrer les utilisateurs de Stormpath vers Auth0
Activez l’importation d’utilisateurs : Allez sur Auth0 Dashboard > Authentification > Base de données et sélectionnez votre connexion à la base de données. Dans ses Paramètres, activez l’option Importer les utilisateurs vers Auth0.
Activez les applications pour votre connexion : Sélectionnez les Applications à afficher. Activez les applications qui utiliseront la connexion à la base de données.
Créez le script Connexion : Le script Connexion est exécuté lorsqu’un utilisateur tente de se connecter, mais que son compte n’est pas trouvé dans la base de données Auth0. Vous devrez créer un script qui appelle l’API de Stormpath pour authentifier l’utilisateur, transmettant alors les informations d’identification de l’utilisateur en tant que paramètres
username
etpassword
.Si l’authentification est réussie, la réponse de Stormpath inclura l’URL du compte de l’utilisateur. Effectuez une seconde requête à l’URL du compte pour récupérer les informations de l’utilisateur. Vous pouvez alors extraire les informations de l’utilisateur et les transmettre à Auth0 dans la fonction de rappel.
Cliquez sur le bouton Essayer au-dessus du script pour tester et voir si le script fonctionne correctement.function login(username, password, callback) { // Replace the {yourStormpathClientId} attribute with your Stormpath ID var url = 'https://api.stormpath.com/v1/applications/{yourStormpathClientId}/loginAttempts'; // Stormpath requires the user credentials be passed in as a base64 encoded message var message = username + ':' + password; var pass = new Buffer(message).toString('base64'); // Here we are making the POST request to authenticate a user request({ url: url, method: 'POST', auth: { // Your API Client ID user: '{yourStormpathClientId}', // Your API Client Secret password: '{yourStormpathClientSecret}' }, headers: { 'Content-Type': 'application/json' }, json: { type: 'basic', // Passing in the base64 encoded credentials value: pass } }, function (error, response, body) { // If response is successful we'll continue if (response.statusCode !== 200) return callback(); // A successful response will return a URL to get the user information var accountUrl = body.account.href; // We'll make a second request to get the user info. This time it will be a GET request request({ url: accountUrl, method: 'GET', auth: { // Your API Client ID user: '{yourStormpathClientId}', // YOUR API Client Secret password: '{yourStormpathClientSecret}' } }, function (errorUserInfo, responseUserInfo, bodyUserInfo) { // If we get a successful response, we'll process it if (responseUserInfo.statusCode !== 200) return callback(); var parsedBody = JSON.parse(bodyUserInfo); // To get the user identifier, we'll strip out the Stormpath API var id = parsedBody.href.replace('https://api.stormpath.com/v1/accounts/', ''); // Finally, we'll set the data we want to store in Auth0 and migrate the user return callback(null, { user_id : id, username: parsedBody.username, email: parsedBody.email, // We set the users email_verified to true as we assume if they were a valid // user in Stormpath, they have already verified their email // If this field is not set, the user will get an email asking them to verify // their account email_verified: true, // Add any additional fields you would like to carry over from Stormpath }); }); }); }
Was this helpful?
/Créez le script Obtenir l’utilisateur : Le script Obtenir l’utilisateur est exécuté lorsque l’utilisateur tente de réinitialiser son mot de passe mais que son compte n’est pas trouvé dans la base de données Auth0. Vous devrez créer un script qui appellera le point de terminaison
/accounts
de l’API de Stormpath, en utilisant le courriel de l’utilisateur comme paramètreemail
. En cas de succès, Stormpath renverra les informations associées à l’utilisateur. Vous pouvez extraire les informations de l’utilisateur et les transmettre à Auth0 dans la fonction de rappel.Cliquez sur le bouton Essayer au-dessus du script pour tester et voir si le script fonctionne.function getByEmail(email, callback) { // Replace the {yourStormpathClientId} attribute with your Stormpath ID var url = 'https://api.stormpath.com/v1/applications/{yourStormpathClientId}/accounts'; request({ url: url, method: 'GET', auth: { // Your API Client ID user: '{yourStormpathClientId}', // YOUR API Client Secret password: '{yourStormpathClientSecret}' }, qs: { q: email } }, function (error, response, body) { if (response.statusCode !== 200) return callback(); var parsedBody = JSON.parse(body); var user = parsedBody.items[0]; if (!user) return callback(); var id = user.href.replace('https://api.stormpath.com/v1/accounts/', ''); return callback(null, { user_id: id, username: user.username, email: user.email, email_verified: true, // Add any additional fields you would like to carry over from Stormpath }); }); }
Was this helpful?
/Testez la connexion à la base de données personnalisée : Cliquez sur Try connection (Tester la connexion). Le gadget logiciel Auth0 Lock apparaît. Saisissez l’adresse courriel et le mot de passe de l’utilisateur Stormpath, et cliquez sur Log In (Connexion). Vous devriez voir une page Web indiquant que la connexion fonctionne, avec des informations sur l’utilisateur.
Pour voir les utilisateurs nouvellement importés, allez dans Dashboard > Gestion des utilisateurs > Utilisateurs.