Enregistrement d'un utilisateur auprès d'un autre fournisseur d'identité

L'article Enregistrement d'un utilisateur en plusieurs étapes a permis de comprendre comment une expérience d'enregistrement d'un utilisateur de base peut être créée à l'aide du concepteur de flux. L'objectif de cet article était d'intégrer un nouvel utilisateur à IBM Security Verify.

Cependant, certaines entreprises doivent traiter avec plusieurs fournisseurs d'identité pour gérer leur population d'utilisateurs. Parfois, ils doivent concevoir des mesures pour consolider les données entre les différents fournisseurs d'identité, afin d'améliorer la gestion des utilisateurs. La consolidation des données est en soi une tâche complexe, surtout si l'on considère les défis associés aux différents schémas pour les différents fournisseurs d'identité.

Cet article montre comment les organisations peuvent gérer les identités de plusieurs fournisseurs d'identité différents sans consolider les données et en utilisant un flux commun. L'article est une extension de l'enregistrement d'un utilisateur en plusieurs étapes, avec des étapes supplémentaires sur la façon de créer l'utilisateur dans les fournisseurs d'identité au-delà d' IBM Security Verify.

Vue d'ensemble du flux

Le flux comprend les étapes suivantes :

  1. Demandez à l'utilisateur de fournir un courriel et utilisez-le comme nom d'utilisateur.
  2. Demandez à l'utilisateur de vérifier son adresse électronique à l'aide d'un Email-OTP.
  3. Demandez à l'utilisateur de fournir quelques informations de base, telles que son prénom et son nom de famille.
  4. Demander à l'utilisateur de fournir un mot de passe.
  5. Mettre en correspondance les données collectées avec le schéma du fournisseur d'identité cible.
  6. Créer un profil d'utilisateur dans le fournisseur d'identité cible.
  7. Afficher une page de confirmation ou d'erreur à l'utilisateur.
1932

Prérequis

  1. IBM Security Verify tenant
  2. Le concepteur de flux doit être activé dans votre locataire.

Configuration des formulaires de flux

Créer les formulaires d'utilisateur appropriés

Créez les formulaires d'utilisateur qui seront utilisés pour orchestrer l'expérience d'enregistrement de bout en bout. Dans ce cas, trois formulaires d'utilisateur doivent être créés.

📘

Note

Ce guide ne présente que la création de 3 formulaires avec des champs spécifiques. D'autres attributs et formulaires peuvent être créés et connectés afin d'étendre les étapes de collecte d'attributs dans le flux d'enregistrement souhaité. Cela peut se faire en introduisant davantage d'éléments dans le générateur de formulaires.

A. Formulaire de capture et de vérification des courriels

  1. Lorsque vous êtes connecté en tant qu'administrateur dans IBM Security Verify, accédez à "User experience".

  2. Sous "Expérience utilisateur", sélectionnez "Formulaires utilisateur" > "Créer un formulaire".

  3. Saisir un nom de formulaire. Par exemple, "Email". Vous pouvez modifier d'autres paramètres, tels que la langue principale, la gestion des sessions, le thème et la vérification humaine.

    1470
  4. Cliquez sur "Commencer à construire le formulaire".

  5. Cliquez sur l'élément "Adresse électronique" du formulaire pour définir les paramètres appropriés dans le panneau "Éditeur d'éléments de formulaire".

  6. Activez les boutons "Nom d'utilisateur du compte" et "Vérifier l'adresse électronique". Cliquez sur "Enregistrer les modifications" et "Publier".

    1518
  7. Après la publication, vérifiez que le formulaire publié s'affiche comme suit :

    1170

📘

Note

D'autres paramètres tels que l'image de marque, le texte affiché lors de la vérification de l'OTP par courriel, le texte du champ d'attributs, etc. peuvent être personnalisés dans n'importe quel formulaire d'utilisateur.

B. Saisir les données de base de l'enregistrement

  1. Lorsque vous êtes connecté en tant qu'administrateur dans IBM Security Verify, accédez à "User experience".

  2. Sous "Expérience utilisateur", sélectionnez "Formulaires utilisateur" > "Créer un formulaire".

  3. Saisir un nom de formulaire. Par exemple, "Détails de base". Vous pouvez modifier d'autres paramètres, tels que la langue principale, la gestion des sessions, le thème et la vérification humaine.

    1448
  4. Cliquez sur "Commencer à construire le formulaire".

  5. Supprimez le champ "Adresse e-mail". Ajoutez deux nouveaux champs pour collecter le "Prénom" et le "Nom de famille". Cliquez sur "Enregistrer les modifications" et "Publier".

    1468
  6. Après la publication, vérifiez que le formulaire publié s'affiche comme suit :

    1480

📘

Note

D'autres paramètres tels que l'image de marque, le texte affiché lors de la vérification de l'OTP par courriel, le texte du champ d'attributs, etc. peuvent être personnalisés dans n'importe quel formulaire d'utilisateur.

C. Formulaire de création de mot de passe

  1. Lorsque vous êtes connecté en tant qu'administrateur dans IBM Security Verify, accédez à "User experience".

  2. Sous "Expérience utilisateur", sélectionnez "Formulaires utilisateur" > "Créer un formulaire".

  3. Saisir un nom de formulaire. Par exemple, "Password". Vous pouvez modifier d'autres paramètres, tels que la langue principale, la gestion des sessions, le thème et la vérification humaine.

    1474
  4. Cliquez sur "Commencer à construire le formulaire".

  5. Cliquez sur l'élément "Adresse électronique" du formulaire pour le remplacer par "Mot de passe".

  6. Dans le panneau "Éditeur d'éléments de formulaire", sélectionnez "Mot de passe du compte" dans le menu déroulant "Élément de formulaire". Cliquez sur "Enregistrer les modifications" et "Publier".

    1472
  7. Après la publication, vérifiez que le formulaire publié s'affiche comme suit :

    1518

Vous avez ainsi créé les trois formulaires nécessaires au flux. La liste des "Formulaires d'utilisateur" s'affiche comme suit :

2140

Orchestrer le flux

Une fois que tous les formulaires nécessaires ont été créés, l'étape suivante consiste à les réunir pour créer une expérience d'enregistrement de bout en bout.

  1. Naviguez vers "Flow designer" sous "User experience" et sélectionnez "Create flow".

  2. Saisissez le nom du flux correspondant, par exemple "IDP Agnostic User Registration". Créer le flux.

    998
  3. Un canevas vierge avec un nœud d' événement Start apparaît. Il s'agit du nœud "Start" nécessaire pour démarrer le flux.

    1952
  4. Cliquez sur la tâche "Fonction".

    1384
  5. Cliquez sur "Ajouter au canevas" et quittez le panneau latéral "Fonction".

  6. Nommez la tâche "Set vars" et utilisez-la pour initialiser les propriétés nécessaires à la connexion au fournisseur d'identité souhaité.

    1478

📘

Note

Chaque fournisseur d'identité a sa propre méthode d'authentification. Certains reposent sur une combinaison de nom d'utilisateur et de mot de passe, d'autres sur un identifiant ou un secret client, tandis que d'autres encore s'appuient sur des clés d'API.

Dans le cadre de cet article, nous supposons que vous avez besoin du point de terminaison cible et d'une clé pour vous connecter à votre fournisseur d'identité. Deux variables sont donc initialisées, externalIdpURL et externalIdpKey.

La liste spécifique des variables à initialiser dépend entièrement du fournisseur d'identité auquel vous devez vous connecter.

  1. Une fois les variables initialisées, ajoutez les formulaires nécessaires au flux. Pour ce faire, cliquez sur la tâche "Formulaire utilisateur".

    1722
  2. Cliquez sur "Ajouter au canevas" et quittez le panneau latéral "Formulaire utilisateur".

  3. Sélectionnez le "Formulaire utilisateur" sur le canevas qui a été ajouté. Donnez-lui un nom approprié et veillez à ce que le "formulaire" soit "Email".

    1718
  4. Cliquez sur la tâche "Set vars". Une flèche bleue apparaît en haut à droite du nœud. Reliez cette flèche à la tâche "Email" nouvellement créée sur le canevas.

964
  1. Le flux doit être interrompu jusqu'à ce que l'utilisateur saisisse l' identifiant électronique et le valide. Une telle interruption est obtenue en ajoutant un rappel au flux, après le formulaire qui a été ajouté. Dès que vous cliquez sur "Requires callback", un "Message event" est automatiquement inséré dans le canevas, après le nœud. Cela signifie que le flux ne se poursuivra pas tant que le signal configuré dans l'"événement message" n'aura pas été transmis au flux de travail. Le signal est transmis au flux lorsque l'utilisateur soumet le formulaire.
1632
  1. Ajoutez un autre "formulaire utilisateur" en suivant les étapes 7 à 11, cette fois pour collecter les "détails de base" de l'utilisateur. Donnez-lui un nom approprié et veillez à ce que le "formulaire" soit "Détails de base". Veillez à cocher la case "Requires callback".
1376
  1. Sélectionnez le nœud "Message event" qui a été généré automatiquement après la tâche "Email". Une flèche bleue apparaît en haut à droite du nœud. Reliez cette flèche à la tâche "Détails de base" nouvellement créée.
640
  1. Ajoutez un autre "formulaire utilisateur" en suivant les étapes 7 à 11, cette fois pour collecter le "mot de passe du compte" de l'utilisateur. Donnez-lui un nom approprié et veillez à ce que le "Formulaire" soit "Mot de passe". Veillez à cocher la case "Requires callback".
1314
  1. Sélectionnez le nœud "Message event" qui a été généré automatiquement après la tâche "Basic Details". Une flèche bleue apparaît en haut à droite du nœud. Reliez cette flèche à la tâche "Mot de passe du compte" nouvellement créée.
484
  1. Naviguez vers "Tâches" et ajoutez la tâche "Fonction" au canevas. Nommez-le "Créer un utilisateur sur l'IDP externe".
1470
  1. Sélectionnez le nœud "Message event" qui a été généré automatiquement après la tâche "Account Password". Une flèche bleue apparaît en haut à droite du nœud. Reliez cette flèche à la tâche "Create user on External IDP" nouvellement créée.
724
  1. Sélectionnez la tâche "Créer un utilisateur sur IDP externe". Cette tâche comporte la logique d'entreprise permettant de mapper les attributs collectés au schéma pertinent dans l'IDP cible, et déclenche ensuite un point final REST pour créer l'utilisateur sur le même schéma.

Voici un exemple de règle que vous pouvez utiliser pour :

  1. Extraire les données saisies dans les différents formulaires configurés, qui sont généralement stockées dans ctx.userFormData.userData.
  2. Mapper les données au schéma cible postBody ). A titre d'illustration, le fournisseur d'identité Okta est pris comme exemple mais vous pouvez l'étendre au fournisseur d'identité de votre choix.
  3. Déclenchez la création de l'utilisateur par le point de terminaison cible en utilisant le postBody comme charge utile.
statements:
- context: email := ctx.userFormData.userData['3']
- context: firstName := ctx.userFormData.userData['6']
- context: lastName := ctx.userFormData.userData['7']
- context: login := ctx.userFormData.userData['3']
- context: password := ctx.userFormData.userData['password']
- context: postBody := "{\"profile\":{\"email\":\""+  context.email + "\",\"firstName\":\""+ context.firstName + "\",\"lastName\":\"" +  context.lastName + "\",\"login\":\"" +   context.login + "\"}, \"credentials\":{\"password\":{\"value\":\"" + context.password + "\"}}}"
- return: >
        {
            "userCreated": hc.Post(ctx.externalIdpURL, {'Authorization': ctx.externalIdpKey , 'Content-Type': 'application/json', 'Accept': 'application/json'}, context.postBody).responseBody
        }

Copiez cet extrait de règle dans la propriété "Rule expression" de la tâche "Create user on External IDP" :

1324

Cliquez sur "Enregistrer" pour enregistrer l'"expression de la règle" dans la tâche.

  1. Ajouter un nœud pour valider si la création de l'utilisateur a réussi ou si elle a abouti à une condition d'erreur et prendre la décision de flux sur la base de cette vérification. Pour ce faire, lancez les "Points de décision".
1570
  1. Cliquez sur "Passerelle exclusive" :
1514
  1. Cliquez sur "Ajouter au canevas" et quittez le panneau latéral "Passerelle exclusive".

  2. Cliquez sur la tâche "Créer un utilisateur sur l'IDP externe". Une flèche bleue apparaît en haut à droite du nœud. Reliez cette flèche à la "passerelle exclusive" nouvellement ajoutée.

824
  1. Créez les pages pour afficher le message de réussite ou d'échec à l'utilisateur. Pour ce faire, naviguez vers "Tâches" et cliquez sur la tâche "Page".
1490
  1. Cliquez sur "Ajouter à la toile" et quittez le panneau latéral "Page".

  2. Nommez la "page" "page de confirmation". Sélectionnez la page que vous souhaitez configurer comme page de confirmation custom_page1 dans ce cas), ainsi que le thème approprié. Reliez également la "passerelle exclusive" à cette "page de confirmation" en utilisant la flèche qui apparaît lorsque vous cliquez sur la "passerelle exclusive".

1398
  1. Naviguez vers "Tâches" et ajoutez une autre tâche "Page" au canevas. Nommez cette deuxième page "Page d'erreur". Sélectionnez la page que vous souhaitez configurer comme page d'erreur custom_page3 dans ce cas), ainsi que le thème approprié. Reliez la "Passerelle exclusive" à cette "Page d'erreur" en utilisant la flèche qui apparaît lorsque vous cliquez sur la "Passerelle exclusive".
1458

📘

Note

Pour les étapes 25 et 26, il est supposé que vous avez mis à jour les pages personnalisées dans la section "Branding" de manière appropriée. Vous pouvez vous référer à la section "Custom branding theme" sous "Installation et configuration", de l'article Login with username pour plus de détails, au cas où ces pages ne seraient pas configurées dans votre environnement.

  1. Définir les conditions dans lesquelles le flux doit être redirigé vers la "page de confirmation" OU la "page d'erreur". Pour définir la condition dans laquelle la "page de confirmation" doit être affichée, cliquez sur la flèche allant de la "passerelle exclusive" à la "page de confirmation".
1366
  1. Créez les conditions en lançant le "Constructeur de conditions" à l'aide du lien mis en évidence à l'étape 27 (dans le panneau "Propriétés").
1740
  1. Cliquez sur "Ajouter un ensemble de conditions" pour commencer à construire la condition.

  2. Si l'utilisateur est créé avec succès à l'aide de la "règle" partagée à l'étape 18, l'objet "userCreated" doit être renseigné dans le contexte du flux de travail. Ainsi, une vérification de "userCreated" devrait suffire à confirmer que l'utilisateur a été créé avec succès. Pour cela, tapez [email protected]@_ dans le champ "Attribute" de la condition, et spécifiez l'"Operator" comme "has property" :

2346
  1. Une fois l'"Opérateur" spécifié, le champ "Valeur" apparaît. Spécifiez la "valeur" comme "id" et "enregistrez" la condition.
2408
  1. Voici une vue de la condition associée au flux allant de la "passerelle exclusive" à la "page de confirmation" :
1386
  1. Si l'objet "userCreated" ne comporte pas d'identifiant légitime, le flux est dirigé vers la "page d'erreur".

  2. À titre d'illustration, l'article présente l'utilisation d'une seule condition. Vous pouvez ajouter d'autres conditions pour conclure au succès ou à l'erreur, en fonction du cas d'entreprise.

  3. Naviguez jusqu'à "Points de décision" pour compléter le flux en ajoutant l'"Événement de fin".

1484
  1. Relier les tâches "Page de confirmation" et "Page d'erreur" au point de décision "Fin de l'événement".
1320
  1. Le flux est maintenant créé d'un bout à l'autre.
674
  1. Cliquez sur "Enregistrer" puis sur "Publier".

  2. Naviguez jusqu'à l'icône "Settings" dans "Flow designer".

2442
  1. Copiez l'" URL exécution". L'" URL exécution" déclenche le processus d'enregistrement de l'utilisateur.
1126
  1. Collez l'" URL exécution" dans un onglet de navigateur incognito.
  2. Utilisez un courriel personnel et continuez à compléter le flux.

L'enveloppe

Ce flux décrit comment vous pouvez facilement créer un parcours d'enregistrement d'utilisateur en plusieurs étapes en utilisant les formulaires d'utilisateur et le concepteur de flux et créer un utilisateur dans n'importe quel fournisseur d'identité donné. Cette création de bout en bout du parcours de l'utilisateur a nécessité un minimum de codage et a été aussi simple que de faire glisser, définir et déposer les artefacts appropriés au sein de la plateforme IBM Security Verify.

ramakrishna J Gorthi, Mansi Arora et Milan Patel, IBM Security