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.

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

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

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

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

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

  2. 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 et mot 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.

    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?

    /
    Cliquez sur le bouton Essayer au-dessus du script pour tester le fonctionnement du script.

  3. 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ête Autorisation. 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.

    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?

    /
    Cliquez sur le bouton Essayer au-dessus du script pour tester le fonctionnement du script.

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

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

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

  2. Activez les applications pour votre connexion : Sélectionnez les Applications à afficher. Activez les applications qui utiliseront la connexion à la base de données.

  3. 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 et password.

    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.

    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?

    /
    Cliquez sur le bouton Essayer au-dessus du script pour tester et voir si le script fonctionne correctement.

  4. 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ètre email. 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.

    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?

    /
    Cliquez sur le bouton Essayer au-dessus du script pour tester et voir si le script fonctionne.

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

  6. Pour voir les utilisateurs nouvellement importés, allez dans Dashboard > Gestion des utilisateurs > Utilisateurs.