Migration des utilisateurs Importation CSV

Introduction

La migration des référentiels d'utilisateurs, qu'ils soient grands ou petits, peut être une tâche décourageante, mais Verify fournit un moyen simple de le faire. La procédure standard d'intégration des utilisateurs de Verify consiste à utiliser l'API REST fournie. Ce guide vous aidera à intégrer un grand nombre d'utilisateurs dans un délai très court.

Verify prend en charge les méthodes suivantes pour importer les données des utilisateurs :

  1. Saisie manuelle
  2. API d'importation CSV
  3. API utilisateur (unique)
  4. API de chargement en masse (multiple)

Dans ce guide, nous utiliserons la méthode d'importation CSV, qui est la plus courante.

Collecte de données

Format des données

Pour importer des utilisateurs via la méthode CSV, Verify exige que votre référentiel d'utilisateurs (qu'il s'agisse de LDAP ou d'une base de données SQL) soit converti dans un format CSV compatible UTF-8. Assurez-vous que la méthode dans laquelle vous envisagez de convertir vos données prend en charge ce format.

Type d'utilisateur

Il est important de noter le type d'utilisateurs que vous allez importer. Si vous ne connaissez pas le modèle de l'annuaire en nuage de Verify, lisez l'article sur la structure de l'annuaire de Verify. Dans ce guide, nous allons importer des utilisateurs pour qu'ils aient un compte d'utilisateur standard dans le cloud directory, avec un mot de passe local, généré lors de la création de l'utilisateur. Ce type d'utilisateur est déterminé par le type d'utilisateur regular. Si vous souhaitez importer uniquement les métadonnées de l'utilisateur sans mot de passe local, vous devez remplacer deux valeurs d'attribut : realm et userCategory.

Jeton d'accès

Le client API utilisé pour importer des utilisateurs doit disposer d'au moins l'une des autorisations suivantes dans IBM Security Verify:

  • Gérer les utilisateurs et les groupes, ou
  • Synchroniser les utilisateurs et les groupes, ou
  • Gérer les utilisateurs et les groupes standard

L'application doit avoir acquis un jeton d'accès à l'aide du flux " Client Credentials ".

Obtenir les en-têtes CSV

Pour structurer correctement votre fichier CSV en vue de son importation, vous devez d'abord comprendre quelles sont les options d'en-tête disponibles. Si vous connaissez déjà le schéma utilisateur, le nom de l'en-tête est égal à l'identifiant de l'attribut dans SCIM ou, si vous utilisez un attribut personnalisé, à la valeur spécifiée lors de la création de l'attribut.

curl -X GET "https://${tenant_url}/v2.0/CSV/headerNames?filter=user" -H "Authorization: Bearer ${access_token}"
{
    "headerNames": [
        {
            "dataType": "string",
            "name": "preferred_username", // This is a column header name
            "required": true // This indicates whether you must include it
        },
        {
            "dataType": "string",
            "name": "family_name",
            "required": false
        },
        {
            "dataType": "string",
            "name": "given_name",
            "required": false
        },
        {...},
        {
            "dataType": "string",
            "name": "password",
            "required": false
        }
    ]
}

Cette réponse comprendra tous les noms d'en-têtes possibles. Le nom que vous utiliserez dans la colonne a du CSV se trouve dans le nom de l'objet name. Dans l'appel ci-dessus, nous avons ajouté un filtre utilisateur. Sans cela, nous obtiendrions également des noms d'attributs pour les groupes, ce qui n'est pas ce que nous voulons.

Créer le fichier CSV

Si nous voulions créer un fichier CSV rapide et minimal des champs utilisateur de base, avec un mot de passe autogénéré, voici à quoi il ressemblerait :

preferred_usernamegiven_namefamily_namee-mail
user1JohnDoe[email protected]
user2JaneSmith[email protected]
user3barbaraJordanie[email protected]

Remarque : la taille maximale des fichiers est de 10MB Si votre fichier est volumineux, divisez-le en plusieurs fichiers CSV.

Ajoutez d'autres colonnes si nécessaire. Les valeurs des attributs peuvent toujours être mises à jour après coup dans la console d'administration. Enregistrez ce fichier en tant que fichier texte CSV codé en UTF-8.

❗️

Utilisateurs d'Excel, attention !

Si vous avez exporté votre fichier CSV à partir d'Excel, l'encodage comprend souvent des caractères bizarres au début du fichier. Il s'agit d'une solution simple. Il suffit d'ouvrir le fichier dans un éditeur de texte brut et de supprimer les caractères. Les caractères ressemblent à :  et sont connus sous le nom de Byte Order Mark (BOM). Si vous ne voyez pas les caractères dans l'éditeur de texte, copiez et collez le texte dans un nouvel éditeur de texte et enregistrez dans un nouveau fichier.

Migration de mot de passe

Verify prend en charge l'intégration des hachages de mots de passe des utilisateurs existants et des mots de passe en texte clair. Si vous souhaitez créer des utilisateurs avec un mot de passe connu / haché, ajoutez une colonne appelée password à chaque ligne d'utilisateur, Verify créera un utilisateur avec ce mot de passe. Si votre base de données ou LDAP fournit le hachage à sens unique dans l'un des formats pris en charge, vous devrez obtenir la valeur et la préfixer par {TYPE}. Par exemple, si vous utilisez Salted-SHA256, la valeur doit être préfixée par {SSHA256}.

Notez que si votre mot de passe comporte un signe " +", échappez tous les signes "+" en les remplaçant par “%2B”

Exemple de fichier CSV

Voici un exemple de fichier CSV contenant les informations minimales :

preferred_username,given_name,family_name,email
user1,John,Doe,[email protected]
user2,Jane,Smith,[email protected]
user3,Barbara,Jordan,[email protected]

Notez que les espaces après les virgules interrompent l'importation.

Importer le fichier

Une fois le fichier créé, quelques autres configurations sont possibles. Dans l'appel ci-dessous, nous allons supprimer toutes les notifications par courrier électronique de nouveaux comptes grâce au paramètre notifyType=NONE. En outre, nous créons un mot de passe aléatoire lors de la première connexion, mais nous ne voulons pas que l'utilisateur ait à le réinitialiser (nous lui permettrons de le faire quand il le voudra). Afin de supprimer l'obligation de changer de mot de passe lors de la première connexion, nous ajoutons l'en-tête usershouldnotneedtoresetpassword: true.

curl --location -X POST "https://${tenant_url}/v2.0/CSV/importUsers?notifyType=NONE" \
--header "Authorization: Bearer ${access_token}" \
--header 'usershouldnotneedtoresetpassword: true' \
--form 'file=@/path/to/file/user_import.csv'

Si le fichier a été formaté correctement et accepté, vous recevrez un identifiant en retour. Cette fonction peut être utilisée pour interroger l'API d'état afin de vérifier si tout fonctionne correctement. Les utilisateurs sont traités de manière linéaire. Le traitement d'un fichier de taille maximale 10mb ) peut prendre environ 15 à 20 minutes.

Vérifier le statut de l'importation

Pendant que les utilisateurs sont traités, vous pouvez facilement voir l'état actuel de l'importation en appelant l'API CSV jobs.

curl --location --request GET "https://${tenant_url}/v2.0/CSV/jobs/${id}" \
--header "Authorization: Bearer ${access_token}"

La réponse fournira l'adresse actuelle state et les statistiques sur le nombre d'utilisateurs non traités ( unprocessedCount ) et ceux qui ont été traités et ajoutés ( processedCount ). En cas d'erreur, un décompte sera fourni ( errorsCount ).

📘

Migrer des millions d'utilisateurs ? Aucun problème.

Bien que la migration via les API soit possible pour des millions d'utilisateurs grâce aux méthodes ci-dessous, il est tout à fait plus efficace de travailler avec notre équipe pour planifier le chargement en masse en votre nom. Les clients peuvent ouvrir un ticket d'assistance auprès du service d'assistance d' IBM en utilisant la communauté d'assistance en ligne d' IBM ou par téléphone ( IBM (800-426-7378)). L'équipe de gestion des services assurera le suivi en indiquant un emplacement de téléchargement sécurisé. Vous téléchargerez ensuite vos données utilisateur à cet emplacement et l'équipe de gestion des services chargera IBM Security Verify.