Enregistrement de l'utilisateur avec demande de compte

Enregistrement de l'utilisateur en plusieurs étapes avec prise en charge des demandes d'ouverture de compte

IBM Security Verify permet aux utilisateurs de s'auto-enregistrer, comme on le voit généralement dans les cas d'utilisation de la gestion de l'identité et de l'accès des consommateurs (CIAM) et du commerce interentreprises B2B2C.

L'auto-enregistrement peut se faire en faisant passer l'utilisateur par une série d'étapes de collecte et de validation de données. L'utilisateur peut également créer un compte ou un profil numérique sur la base d'une relation existante qu'il entretient avec une organisation. Cette relation peut prendre la forme d'un identifiant de membre, d'un identifiant de police ou d'un numéro de compte.

L'action de créer un compte numérique sur la base d'une relation existante est connue sous le nom de "revendication d'un compte". Les informations fournies par l'utilisateur dans ce flux sont validées par un système d'enregistrement géré par l'organisation.

Ce blog vous aide à comprendre comment vous inscrire en "réclamant un compte".

Vue d'ensemble du flux

Le processus de "réclamation d'un compte" se déroule comme suit :

1910
  1. Recueillir l' identifiant de la politique auprès de l'utilisateur.
  2. Récupérer l'objet utilisateur correspondant à cet identifiant de politique dans le système tiers.
  3. Montrer les détails récupérés à l'utilisateur à des fins de validation.
  4. Recueillir toutes les informations supplémentaires nécessaires à l'enregistrement.
  5. Créer un profil d'utilisateur.
  6. Afficher une page de confirmation de l'inscription.
  7. Si la création d'un utilisateur échoue pour une raison quelconque, le flux est redirigé vers une page d'erreur.

Prérequis

Examiner et comprendre l'exemple hello world, y compris la manière d'obtenir des ressources de flux et de ressources de page pour configurer les flux de l'exemple. Voir la page parente pour plus de détails sur l'exemple hello world.

Voici les autres conditions préalables :

  1. Contactez l'équipe de support d' IBM Security Verify et activez les fonctions d'enregistrement des utilisateurs dans votre locataire :
    • CI-98615: Enregistrement de l'utilisateur du flux de travail.
  2. Créez un ensemble de formulaires de collecte de données utilisateur que vous pouvez utiliser pour présenter des données pertinentes et recueillir d'autres données auprès des utilisateurs.

Installation et configuration

Thème de marque personnalisé

Ce flux présente des pages personnalisées, un thème doit donc être créé pour éviter d'affecter les flux qui utilisent le thème par défaut. Il existe deux fichiers personnalisés :

  • custom_page4.html: Ce modèle est utilisé pour afficher une erreur en cas d'échec du flux.
  • custom_page5.html: Ce modèle est utilisé pour afficher une confirmation à l'utilisateur après l'enregistrement.

Connectez-vous à la console d'administration IBM Security Verify et procédez comme suit :

  1. Dans le menu de gauche, sélectionnez Expérience utilisateur et cliquez sur Marque.

  2. Suivez les étapes mentionnées ici pour créer un thème pour ce flux. Donnez un nom approprié au thème. Dans le contexte de cet article, nommer le thème Enregistrement de l'utilisateur.

    2058
  3. Cliquez sur la tuile du thème pour afficher l'arborescence des fichiers.

  4. Développez workflow > pages et cliquez sur les trois points verticaux à côté de custom_page4.html Cliquez sur Upload.

    1056
  5. Choisissez $GIT_REPO/flows/user_registration_with_account_claiming/pages/templates/workflow/default/custom_page4.html dans le dossier local. Cliquez ensuite sur Télécharger.

    1310
  6. Comme à l'étape précédente, sous Flux de travail > Pages, cliquez sur les trois points verticaux à côté de custom_page5.html Cliquez sur Upload.

  7. Choisissez $GIT_REPO/flows/user_registration_with_account_claiming/pages/templates/workflow/default/custom_page5.html dans le dossier local. Cliquez ensuite sur Télécharger.

Configuration des formulaires de flux

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

📘

Note

Le présent article décrit les étapes à suivre pour créer trois formulaires avec des champs spécifiques afin de démontrer le flux d'enregistrement de base. Le flux peut être étendu pour inclure davantage d'attributs et de formulaires, en fonction des besoins individuels de l'enregistrement.

A. Formulaire de collecte de l'identifiant de la politique gatherPolicyId :

  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" et "Créer un formulaire".

  3. Saisissez un nom de formulaire, par exemple gatherpolicyid, et un champ pour recueillir l' identifiant de la politique. D'autres paramètres peuvent être définis en option, tels que la langue principale, la gestion des sessions, le thème et la vérification humaine :

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

  5. Supprimez le champ "Adresse e-mail" et cliquez sur "Ajouter un élément de formulaire" :

    1570
  6. Ajoutez le champ approprié pour collecter l' identifiant de politique de l'utilisateur :

    1464
  7. Cliquez sur "Enregistrer les modifications" et "Publier".

    1490

    Cette étape a permis de remplir le premier des trois formulaires nécessaires. Remarque : d'autres paramètres peuvent être personnalisés, tels que la marque, le texte affiché pour la collecte de l' identifiant de la politique, d'autres champs pour la validation, etc.

B. Formulaire permettant d'afficher les détails de l'utilisateur, tels qu'ils sont collectés par un tiers completeForm

  1. Suivez les étapes similaires à celles de la section A pour afficher les données collectées par le serveur tiers :

    1192
  2. Les champs d'intérêt de ce formulaire sont les suivants :

    1. Prénom.
    2. Nom de famille.
    3. Courriel.
    4. Nom d'utilisateur.
    5. Consentement à la conservation des données collectées auprès de tiers.
  3. Lorsque le formulaire est composé, cliquez sur "Enregistrer les modifications" et "Publier".

    Cette étape a permis de remplir le deuxième des trois formulaires nécessaires. Remarque : d'autres paramètres peuvent être personnalisés, tels que l'image de marque, un ensemble différent de champs, etc.

C. Formulaire permettant de recueillir des informations supplémentaires sur l'utilisateur additionalDetails ):

  1. Suivez les étapes similaires à la section A pour recueillir plus de détails auprès de l'utilisateur :

    1476
  2. Les champs d'intérêt de ce formulaire sont les données professionnelles de l'utilisateur :

    1. Nom actuel de l'entreprise.
    2. Adresse actuelle de l'entreprise.
    3. Numéro de travail.
  3. Lorsque le formulaire est composé, cliquez sur "Enregistrer les modifications" et "Publier".

Cette étape a permis de compléter le troisième des trois formulaires nécessaires. Remarque : d'autres paramètres peuvent être personnalisés, tels que l'image de marque, un ensemble différent de champs, etc.

Lorsque vous avez terminé, les trois formulaires apparaissent dans la section Formulaires utilisateur d' IBM Security Verify, à l'état publié.

Importer le flux de travail

  1. Pour importer le modèle, connectez-vous à votre Verify Tenant en tant qu'administrateur et passez à l'interface d'administration.

  2. Accédez au concepteur de flux :

    568
  3. Cliquez sur l'icône d'importation située à côté du bouton Créer un flux :

    2210
  4. Complétez les détails et téléchargez le fichier $GIT_REPO/flows/user_registration_with_account_claiming/user_registration_with_account_claiming GIT_REPO/flows/user_registration_with_account_claiming/user_registration_with_account_claiming.bpmn:

    756
  5. Lorsque le modèle est importé, le flux est sauvegardé en mode brouillon. Il apparaît comme suit dans le concepteur de flux :

    1928
  6. Sélectionnez la tâche Set Vars pour spécifier les détails de connexion nécessaires pour se connecter à la source d'identité tierce, qui héberge le compte revendiqué :

    1510
  7. Mettez à jour les tâches du formulaire comme indiqué dans le document " Unpacking the flow".

  8. Une fois toutes les modifications apportées, publiez le flux de travail en cliquant sur le bouton Publier.

Le flux d'eau est en marche

Une fois le flux publié, démarrez-le à l'aide de l' URL exécution :

  1. Ouvrez le panneau Paramètres en cliquant sur l'icône d' information située à côté du bouton Annuler :

    2676

    Dans le panneau Paramètres, copiez l' URL exécution :

    636
  2. Ouvrez une fenêtre de navigateur et allez à cette URL exécution et complétez le flux comme indiqué.

📘

Note

Généralement, le flux prescrit est déclenché dans le cadre de l'enregistrement de l'utilisateur. Toutefois, il est conseillé d'exécuter le flux de bout en bout avant qu'il ne soit activé pour un usage générique.

Déballer le flux

Cette section facultative décrit l'objectif de chaque étape du flux de travail.

Formulaire d'inscription (rassembler l'identifiant de la police)

C'est le premier qui est présenté à l'utilisateur pour qu'il spécifie son policyId à partir du site tiers. Modifiez la configuration du formulaire pour établir un lien avec le formulaire gatherPolicyId que vous avez créé dans la section Configuration des formulaires de flux sous Installation et configuration :

1380

Le flux est interrompu jusqu'à ce que l'utilisateur ait fini de saisir les données :

1732

Dans ce cas précis, le flux est interrompu jusqu'à ce que le signal step1 soit reçu.

Lorsque les données sont soumises par l'utilisateur, elles sont conservées dans la propriété userData de userFormData, dans le contexte du flux de travail.

Recherche de l'utilisateur propriétaire de la politique

Cette tâche est principalement utilisée pour se connecter au système tiers afin d'obtenir les détails de l'utilisateur, correspondant à l' policyId fourni au cours du flux. Dans l'exemple de modèle, la tâche de la fonction consiste à rechercher l'utilisateur. Le script peut être modifié pour refléter les règles préférées, par exemple si vous souhaitez utiliser un attribut différent pour récupérer les détails de l'utilisateur.

La réponse est stockée dans l'objet existingUser.

statements:
- return: >
    {
        "existingUser": hc.GetAsJson('https://' + ctx.thirdPartyIdentitySource + '/v2.0/Users?filter=%28urn%3Aietf%3Aparams%3Ascim%3Aschemas%3Aextension%3Aibm%3A2.0%3AUser%3AcustomAttributes.policyid%20eq%20%22'+ ctx.userFormData.userData.policyId +'%22%29', {'Authorization': 'Bearer ' + hc.Post("https://" + ctx.thirdPartyIdentitySource + "/v1.0/endpoint/default/token", {"Content-Type": "application/x-www-form-urlencoded"}, "client_id=" +  ctx.client_id + "&client_secret=" + ctx.client_secret + "&grant_type=client_credentials").responseBody.access_token, 'Accept': 'application/scim+json'})
    }

Les détails de la connexion mentionnés dans la tâche Set Vars sont utilisés dans cette déclaration spécifique.

📘

Note

Cette construction n'est qu'un exemple de la manière dont vous pouvez obtenir les détails de l'utilisateur en vous connectant à la tierce partie.
Il est possible d'utiliser une combinaison différente d'appels HTTP avec les paramètres appropriés pour compléter l'appel.
Voir ici pour plus de détails sur l'utilisation des appels http.

Associer les détails de l'utilisateur au contexte

Dans le flux, l' existingUser est présenté à l'utilisateur à l'aide d'un formulaire d'utilisateur. Cette approche permet à l'utilisateur d'examiner les détails obtenus auprès du tiers et de les valider avant qu'ils ne soient utilisés à des fins d'enregistrement. Étant donné que le schéma de l'objet utilisateur (provenant d'un tiers) est inconnu du moteur, une transformation des données est nécessaire pour passer du schéma du tiers au schéma local.

Cette transformation des données est réalisée à l'aide d'une tâche Function. Le script peut être modifié pour refléter l'ensemble des règles requises :

statements:
# Extract the attributes that are to be shown to the user for review, from existingUser object. In this case, name & email are main attributes.
  - context: userName := ctx.existingUser.Resources[0].userName
  - context: givenName := ctx.existingUser.Resources[0].name.givenName
  - context: familyName := ctx.existingUser.Resources[0].name.familyName
  - context: updateddata := ctx.existingUser.Resources[0]['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].remove("pwdReset").remove("twoFactorAuthentication").remove("customAttributes")
  - context: updateddataname := ctx.existingUser.Resources[0]['name']
  - context: updatedEmail := ctx.existingUser.Resources[0].emails[0].value

  # The data in the user forms is typically stored in the workflow context against userFormData.userData. Check if we already have a userFormData.userData object available in the context at this point of time.
  - if:
      match: has(ctx.userFormData.userData)
      block:
        - context: updatedData :=  ctx.userFormData.userData.putAll(context.updateddata)
        # Update the relevant attributes in userFormData.userData
        - context: updatedDataWithUserName := ctx.userFormData.userData.put("32", context.userName)
        - context: updatedDataWithEmail := ctx.userFormData.userData.put("3", context.updatedEmail)
        - context: updatedDataWithGivenName := ctx.userFormData.userData.put("6", context.givenName)
        - context: updatedDataWithFamilyName := ctx.userFormData.userData.put("7", context.familyName)
        - context: updatedDataWithName :=  ctx.userFormData.userData.putAll(context.updateddataname)
        - statement: ctx.put('userFormData.userData',context.updatedDataWithName)
        - context: payload := {}.put('userFormData',ctx.userFormData)
        - return: context.payload

Formulaire d'inscription de l'utilisateur

Ce formulaire est présenté à l'utilisateur pour qu'il puisse consulter les informations recueillies auprès du tiers.

Modifier la configuration du formulaire pour créer un lien vers le formulaire completeForm :

1356

Formulaire d'inscription de l'usager - supplémentaire

Ce formulaire est présenté à l'utilisateur pour recueillir des informations supplémentaires en vue de l'enregistrement. Modifier la configuration du formulaire pour créer un lien vers le formulaire additionalDetails. Le processus est similaire à celui de completeForm.

Créer un utilisateur

Cette tâche utilise les données de la propriété userFormData.userData sous le contexte du flux de travail pour enregistrer l'utilisateur. Si l'enregistrement est réussi, l'objet SCIM correspondant est généré en tant que réponse et stocké par rapport à l'objet utilisateur, dans le contexte du flux de travail.

1384

Confirmation de la création du compte

Cette tâche présente une page personnalisée avec une confirmation que le compte a été créé avec succès. La page contient un lien vers la page de connexion et permet de se connecter en utilisant les informations d'identification qui ont été envoyées à l'utilisateur enregistré par courrier électronique.

Pour en savoir plus sur la tâche de la page , cliquez ici.

Dans le modèle mentionné dans cet article, l'existence de l'objet utilisateur est vérifiée dans le contexte du flux de travail. Ce modèle peut être affiné pour un ensemble plus complexe de conditions, en utilisant le générateur de conditions.

Pour lancer l' outil de création de conditions, cliquez sur la flèche menant de la passerelle exclusive à la confirmation de la création du compte. Cliquez sur le lien en surbrillance pour lancer le générateur de conditions.

1436

Dans le générateur de conditions qui s'affiche, ajoutez vos propres conditions pour décider d'afficher ou non la page de confirmation :

1496

Traitement d'erreurs.

Si l'opération de création d'un utilisateur échoue, le flux utilise une passerelle conditionnelle pour diriger l'utilisateur vers une page d'erreur personnalisée.

1370

Suivez des étapes similaires à celles de la section de confirmation de la création de compte, pour définir vos propres conditions d'affichage de la page d'erreur.

En cas d'erreur système, le flux est dirigé vers la page d'erreur par défaut. Cette page peut être personnalisée dans le thème Enregistrement de l'utilisateur.

1424

L'enveloppe

Ce flux introduit une méthode d'enregistrement d'un utilisateur, basée sur les détails existants récupérés auprès d'un tiers. L'intégration avec des tiers démontrée ici peut être personnalisée pour pointer vers n'importe quel tiers qui prend en charge les points d'extrémité REST.

Le flux traite également des formulaires d'utilisation spécifiques, qui peuvent être personnalisés pour répondre aux besoins individuels.

💎

Ramakrishna J Gorthi et 💎 Mansi Arora, IBM Security