Gestion des utilisateurs
Avec Cloud Directory, vous pouvez gérer vos utilisateurs dans un registre évolutif à l'aide d'une fonctionnalité préconfigurée qui améliore la sécurité et le libre-service.
Un utilisateur Cloud Directory n'est pas un utilisateur App ID. Les utilisateurs peuvent s'inscrire à votre application en utilisant les différentes options de fournisseur d'identité que vous avez configurées, ou vous pouvez les ajouter dans votre répertoire. Les utilisateurs mentionnés dans les sections suivantes sont les utilisateurs associés à Cloud Directory en tant que fournisseur d'identité.
Affichage des informations utilisateur
Vous pouvez voir toutes les informations qui sont connues de tous vos utilisateurs de l'annuaire Cloud en tant qu'objet JSON à l'aide des API ou à l'aide du tableau de bord.
Visualisation des informations sur les utilisateurs dans la console
Vous pouvez utiliser le tableau de bord App ID pour afficher les détails sur les utilisateurs de votre application.
-
Accédez à l'onglet Cloud Directory > Utilisateurs de votre instance App ID.
-
Parcourez le tableau ou effectuez une recherche à l'aide d'une adresse e-mail pour trouver l'utilisateur dont vous voulez afficher les informations. Le terme recherché doit être exact.
-
Dans le menu déroulant dynamique de la ligne de l'utilisateur, cliquez sur Afficher les détails de l'utilisateur. Une page contenant les informations de l'utilisateur s'ouvre. Consultez le tableau suivant pour voir les informations présentées.
Les détails que vous pouvez voir sur vos utilisateurs en regardant dans le tableau de bord App ID Détails Description ID utilisateur L'ID utilisateur dépend du type d'inscription utilisateur que vous avez configuré. Par exemple, si vous disposez d'un flux e-mail/mot de passe, l'identifiant est l'adresse e-mail de l'utilisateur. Si vous utilisez le flux nom d'utilisateur et mot de passe, l'identificateur est le nom d'utilisateur fourni lors de l'inscription. Adresse électronique Adresse e-mail principale associée à l'utilisateur. Prénom et nom de famille Prénom et nom de famille de l'utilisateur, tels qu'ils ont été fournis lors de la procédure d'inscription. Dernière connexion Horodatage correspondant à la dernière fois que l'utilisateur s'est connecté à votre application. Remarque : si vous avez ajouté votre utilisateur via le tableau de bord, les informations de connexion sont vides jusqu'à ce que l'utilisateur se connecte lui-même à votre application. Lors de la connexion, il devient également un utilisateur App ID. ID ID attribué à l'utilisateur par App ID. Dans la console, elle n'est pas affichée, mais vous pouvez copier la valeur et la coller dans un éditeur de texte pour la voir. Attributs prédéfinis Les attributs prédéfinis sont les choses concernant un utilisateur qui sont connues grâce à SCIM. Attributs personnalisés Les attributs personnalisés sont des informations supplémentaires qui sont ajoutées au profil utilisateur ou acquises lorsque l'utilisateur interagit avec votre application. Summary Tous les attributs sont compilés pour former un profil qui vous donne une vue d'ensemble complète de votre utilisateur de l'annuaire Cloud. Pour plus d'informations, voir les informations relatives aux profils utilisateur.
Consultation des informations sur les utilisateurs à l'aide de l'API
Vous pouvez utiliser l'API App ID pour afficher les détails sur les utilisateurs de votre application.
-
Obtenez votre ID titulaire depuis votre instance du service.
-
Recherchez vos utilisateurs App ID à l'aide d'une requête d'identification, telle qu'une adresse e-mail, pour trouver l'ID utilisateur.
curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/Users?query=<identifyingSearchQuery>" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"
Exemple :
curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/e19a2778-3262-4986-8875-8khjafsdkhjsdafkjh/cloud_directory/Users?query=user@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...."
-
En utilisant l'ID que vous avez obtenu à l'étape précédente, envoyez une demande GET au noeud final
cloud_directory/users
pour voir le profil utilisateur complet.curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/Users/<userID>" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"
Exemple de réponse :
{ "sub": "c155c0ff-337a-46d3-a22a-a8f2cca08995", "name": "Test User", "email": "testuser@test.com", "identities": [ { "provider": "cloud_directory", "id": "f1772fcc-ff70-4d88-81a0-07dd7a3d988f", "idpUserInfo": { "displayName": "Test User", "active": true, "mfaContext": {}, "emails": [ { "value": "testuser@test.com", "primary": true } ], "meta": { "lastLogin": "2019-05-20T16:33:20.699Z", "created": "2019-05-20T16:25:13.019Z", "location": "/v1/6b8ab644-1d4a-4b3e-bcd9-777ba8430a51/Users/f1772fcc-ff70-4d88-81a0-07dd7a3d988f", "lastModified": "2019-05-20T16:33:20.707Z", "resourceType": "User" }, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "name": { "givenName": "Test", "familyName": "User", "formatted": "Test User" }, "id": "f1772fcc-ff70-4d88-81a0-07dd7a3d988f", "status": "CONFIRMED", "idpType": "cloud_directory" } } ] }
Pour afficher l'ensemble complet des données utilisateur qu'App ID prend en charge, voir le schéma principal SCIM.
Ajout d'utilisateurs
Lorsqu'un utilisateur s'inscrit à votre application, il est ajouté en tant qu'utilisateur. A des fins de test, vous pouvez ajouter un utilisateur via le tableau de bord App ID ou via l'API.
Lorsqu'un utilisateur s'inscrit à votre application, il le fait par le biais d'un flux de travaux de libre-service qui déclenche automatiquement des courriers électroniques tels qu'un message de bienvenue ou une demande de vérification. Lorsque vous, en tant qu'administrateur, ajoutez un utilisateur à votre application, aucun flux de travaux de libre-service n'est lancé, ce qui signifie que les utilisateurs ne reçoivent pas de courrier électronique de votre application. Si vous souhaitez que vos utilisateurs soient toujours informés de leur ajout, vous pouvez déclencher les flux de messagerie via l'API de gestion App ID.
Si vous désactivez l'inscription en libre-service ou si vous ajoutez un utilisateur en son nom, l'utilisateur ne reçoit pas d'e-mail de bienvenue ou de vérification lorsqu'il est ajouté.
Ajouter des utilisateurs dans la console
-
Accédez à l'onglet Cloud Directory > Utilisateurs du tableau de bord App ID.
-
Cliquez sur Ajouter un utilisateur. Un formulaire s'affiche.
-
Entrez les données suivantes : Prénom, Nom, Adresse électronique et Mot de passe. Vérifiez que l'adresse électronique que vous voulez enregistrer n'est pas déjà utilisée par un autre utilisateur. Pour vous assurer que vous avez correctement entré votre mot de passe, saisissez-le dans la zone Confirmer le mot de passe.
-
Cliquez sur Sauvegarder. Un utilisateur Cloud Directory est créé.
Ajout d'utilisateurs à l'aide de l'API
-
Obtenez votre ID titulaire depuis vos données d'identification pour le service ou l'application.
-
Obtenez un jeton IAM IBM Cloud.
curl -X GET "https://iam.cloud.ibm.com/oidc/token" \ -H "accept: application/x-www-form-urlencoded"
-
Exécutez la commande suivante pour créer un utilisateur et un profil en même temps.
curl -X POST "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/sign_up?shouldCreateProfile=true&language=en" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "authorization: Bearer <token>" \ -d "{ \"active\": true, \"emails\": [ { \"value\": \"<user@domain.com>\", \"primary\": true } ], \"userName\": \"<userName>\", \"password\": \"<userPassword>\"}"
Suppression d'utilisateurs
Si vous souhaitez supprimer un utilisateur de votre répertoire, vous pouvez le faire à partir de la console ou en utilisant les API.
Suppression d'un utilisateur unique dans la console
-
Accédez à l'onglet Cloud Directory > Utilisateurs du tableau de bord App ID.
-
Cliquez sur la case à cocher en regard de l'utilisateur à supprimer. Une boîte de dialogue s'affiche.
-
Dans la boîte de dialogue, cliquez sur Supprimer. Un écran s'ouvre.
-
Confirmez que vous avez compris que la suppression d'un utilisateur ne peut pas être annulée en cliquant sur Supprimer. Si l'action était une erreur, vous pouvez ajouter de nouveau l'utilisateur à votre répertoire, mais toutes les informations le concernant ne sont plus disponibles.
Suppression d'un utilisateur unique à l'aide de l'API
-
Obtenez votre ID titulaire.
-
Obtenez un jeton IAM IBM Cloud.
curl -X GET "https://iam.cloud.ibm.com/oidc/token" \ -H "accept: application/x-www-form-urlencoded"
-
A l'aide de l'adresse e-mail qui est associée à l'utilisateur, recherchez l'ID de l'utilisateur dans votre répertoire.
curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users?email=<user@domain.com>" \ -H "accept: application/json"
-
Supprimez l'utilisateur.
curl -X DELETE "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/remove/<userID>" \ -H "accept: application/json" \ -H "authorization: Bearer <token>"
Suppression de plusieurs utilisateurs à l'aide de l'API
Vous pouvez également supprimer en bloc les utilisateurs du répertoire cloud et leurs profils correspondants à l'aide de l'API de suppression en bloc.
Vous pouvez supprimer jusqu'à 100 utilisateurs par demande.
-
Obtenez votre ID titulaire.
-
Obtenez un jeton IAM IBM Cloud.
curl -X GET "https://iam.cloud.ibm.com/oidc/token" \ -H "accept: application/x-www-form-urlencoded"
-
Supprimez les utilisateurs en exécutant la commande suivante avec une liste d'ID utilisateur.
curl -X POST "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/bulk_remove" \ -H "accept: application/json" \ -H "authorization: Bearer <token>" -d '{ "ids": [ "fed2634a-7a6c-4f6a-855d-8e3c73a5b5cc", "9380158c-19c9-4303-9111-a91743f4bad8" ] }'
Migration des utilisateurs
Vous aurez parfois besoin d'ajouter une instance d'App ID. Pour faciliter la migration vers la nouvelle instance, vous pouvez utiliser les API d'exportation et d'importation pour des migrations mineures. Si vous migrez un nombre important d'utilisateurs (16 000 ou plus), vous pouvez les exporter ou les importer tous avec une seule demande d'API pour améliorer votre efficacité.
Le rôle IAM Manager
doit vous être attribué pour les deux instances de App ID.
Exportation de tous les utilisateurs
Avant d'importer vos profils dans votre nouvelle instance, vous devez les exporter de l'instance d'origine du service.
Si vous exportez de nombreux utilisateurs (16 000 ou plus), vous pouvez utiliser le noeud final d'API export/all
.
-
Exportez tous les utilisateurs de votre instance originale du service.
curl -X POST 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/export/all' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <IAMToken>' \ --data-raw '{"encryptionSecret" : "<encryptionSecret>", "emailAddress" : "jdoe@example.com"}'
-
Obtenez le statut de votre demande, si nécessaire.
curl -X GET 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/export/status?id=<id>' --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <IAMToken>'
-
Lorsque l'exportation est prête ou si la demande échoue, un courrier électronique est envoyé à l'adresse électronique indiquée. Pour télécharger l'exportation, utilisez l'API export/download.
curl -X GET 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/export/download?id=<id>' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <IAMToken>'
Un fichier d'exportation est créé uniquement lorsque la demande d'exportation aboutit. Si la demande échoue, pour réduire le risque de vulnérabilité, les données collectées sont supprimées. L'exportation est automatiquement supprimée après 7 jours ou le nombre de jours que vous spécifiez dans le corps de la demande (compris entre 1 et 30 jours). Vous pouvez choisir de supprimer manuellement l'exportation en envoyant une demande à l'API delete.
Description des paramètres qui doivent être fournis dans la requête export/all Paramètres Description encryptionSecret
Chaîne personnalisée utilisée pour chiffrer et déchiffrer le mot de passe haché d'un utilisateur. Conservez la valeur confidentielle de chiffrement si vous en avez besoin pour utiliser l'API import/all. IBM ne stocke pas le secret. Par conséquent, si le secret est perdu, vous ne pouvez pas accéder aux données exportées. emailAddress
Adresse électronique à laquelle un courrier électronique est envoyé lorsque l'exportation est prête ou si la demande échoue. expires
Entier que vous pouvez définir (1 ≤ valeur ≤ 30) pour spécifier le nombre de jours après lequel l'exportation doit être supprimée. La valeur par défaut est 7. tenantID
ID du titulaire du service qui se trouve dans vos données d'identification du service. Vous pouvez trouver ou créer vos identifiants de service dans le tableau de bord App ID.
Exporter des utilisateurs par lots
Le point final d'exportation est réservé aux exportations mineures d'environ moins de 16 000 utilisateurs. Pour exporter tous vos utilisateurs Cloud Directory associés à un ID locataire spécifique, utilisez le noeud final d'API export/all.
-
Exportez les utilisateurs depuis votre instance de service d'origine.
curl -X GET 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/export?encryption_secret=mySecret' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <IAMToken>'
Description des paramètres à fournir dans la demande d'exportation Paramètres Description encryptionSecret
Chaîne personnalisée utilisée pour chiffrer et déchiffrer le mot de passe haché d'un utilisateur. tenantID
ID du titulaire du service qui se trouve dans vos données d'identification du service. Vos données d'identification du service sont disponibles dans le tableau de bord App ID. Seuls vos utilisateurs Cloud Directory et leurs profils sont renvoyés. Les utilisateurs d'autres fournisseurs d'identité ne le sont pas.
Importation de tous les utilisateurs
Maintenant que vous disposez d'une liste d'utilisateurs Cloud Directory exportés, vous pouvez les importer dans la nouvelle instance. Vous pouvez utiliser le point de terminaison import-all de l'API pour importer un nombre important d'utilisateurs (16 000 ou plus) en une seule demande.
-
Importez la liste des utilisateurs exportés que vous avez téléchargés.
curl -X POST 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/import/all' \ --header 'Content-Type: multipart/form-data' \ --header 'Authorization: Bearer <IAMToken>' \ --form 'file=@<User/desktop/myfolder/user_list.json>' \ --form 'encryptionSecret=mySecret' \ --form 'emailAddress=jdoe@example.com'
-
Obtenez le statut de votre demande, si nécessaire.
curl -X GET 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/import/status?id=<id>' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <IAMToken>'
Description des paramètres qui doivent être fournis dans la demande d'importation/d'aliénation Paramètres Description encryptionSecret
Chaîne personnalisée utilisée pour chiffrer et déchiffrer le mot de passe haché d'un utilisateur. Le secret de chiffrement est le même que celui que vous avez associé à l'API export/all. IBM ne stocke pas le secret. Par conséquent, si le secret est perdu, vous ne pouvez pas accéder aux données exportées. emailAddress
Adresse électronique à laquelle un courrier électronique est envoyé lorsque l'exportation est prête ou si la demande échoue. tenantID
ID du titulaire du service qui se trouve dans vos données d'identification du service. Vous pouvez trouver ou créer vos identifiants de service dans le tableau de bord App ID. file
Sortie du noeud final export/download.
Importation d'utilisateurs par lots
Vous pouvez utiliser le noeud final d'API d'importation pour importer de petits groupes d'utilisateurs. Vous pouvez ajouter jusqu'à 50 utilisateurs par demande avec le noeud final d'API d'importation. Pour ajouter tous vos utilisateurs via une seule demande, utilisez le noeud final d'API import/all.
-
Si vos utilisateurs ont des rôles qui leur ont été affectés, veillez à créer les rôles et les portées dans votre nouvelle instance d'App ID.
Les rôles et les portées doivent être créés exactement comme dans l'instance précédente avec la même orthographe.
-
Les utilisateurs sont importés avec un nouvel identificateur Cloud Directory. Si votre application référence l'identificateur Cloud Directory d'une manière ou d'une autre, vous pouvez choisir de créer un attribut personnalisé et d'ajuster votre application pour appeler cet attribut au lieu de passer directement par l'identificateur.
-
Importez les utilisateurs dans votre nouvelle instance du service.
curl -X POST 'https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/cloud_directory/import?encryption_secret=mySecret' --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearer <IAMToken>' -d '{"users": [ { "scimUser": { "originalId": "3f3f6779-7978-4383-926f-a43aef3b724b", "name": { "givenName": "John", "familyName": "Doe", "formatted": "John Doe" }, "displayName": "John Doe", "emails": [ { "value": "user@example.com", "primary": true } ], "status": "PENDING" }, "displayName": "Jane-Doe", "emails": [ { "value": "jdoe@example.com", "primary": true } ], "status": "PENDING" }, "passwordHash": "<passwordHashHere>", "passwordHashAlg": <passwordHashAlgorithm>, "profile": { "attributes": {} }, "roles": [] } ]}'
Script de migration pour les exportations et importations mineures
App ID fournit un script de migration que vous pouvez utiliser via l'interface CLI pour accélérer le processus de migration lorsque vous utilisez les noeuds finaux de l'API d'exportation ou d'importation. Sinon, pour rendre le processus de migration encore plus efficace, vous pouvez utiliser les noeuds finaux d'API export/all et import/all.
- Clonez le référentiel.
git clone https://github.com/ibm-cloud-security/appid-sample-code-snippets/tree/master/export-import-cloud-directory-users.git
-
Dans le terminal, accédez au dossier dans lequel vous avez cloné le référentiel.
-
Exécutez la commande suivante.
npm install
-
Exécutez la commande suivante avec vos paramètres.
users_export_import 'sourceTenantId' 'destinationTenantId' 'region' 'iamToken'
Description des paramètres Paramètre Description sourceTenantId
ID titulaire de l'instance d'App ID à partir de laquelle vous prévoyez d'exporter des utilisateurs. destinationTenantId
ID titulaire de l'instance d'App ID vers laquelle vous prévoyez d'importer des utilisateurs. region
Reportez-vous à cette section sur les régions disponibles. IAM token
Pour obtenir de l'aide sur l'obtention d'un jeton IAM, consultez les documentations. Exemple de commande :
users_export_import e00a0366-53c5-4fcf-8fef-ab3e66b2ced8 73321c2b-d35a-497a-9845-15c580fdf58c ng eyJraWQiOiIyMDE3MTAyNS0xNjoyNzoxMCIsImFsZyI6IlJTMjU2In0.eyJpYW1faWQiOiJJQk1pZC0zMTAwMDBUNkZTIiwiaWQiOiJJQk1pZC0zMTAwMDBUNkZTIiwicmVhbG1pZCI6IklCTWlkIiwiaWRlbnRpZmllciI6IjMxMDAwIFQ2RlMiPCJnaXZlbl9uYW1lIjoiUm90ZW0iLCJmYW1pbHlfbmFtZSI6IkJyb3NoIiwibmFtZSI6IlJvdGVtIEJyb3NoIiwiZW1haWwiOiJyb3RlbWJyQGlsLmlibS5jb20iLCJzdWIiOiJyb3RlbWJyQGlsLmlibS5jb20iLCJhY2NvdW50Ijp7ImJzcyI6ImQ3OWM5YTk5NjJkYzc2Y2JkMDZlYTVhNzhjMjY0YzE5In0sImlhdCI6MTUzNrE3Mjg4NCwiZXhwIjoxNTM3MTc2NDg0LCJpc3MiOiJodHRwczovL2lhbS5zdGFnZTEuYmx1ZW1peC5uZXQvaWRlbnRpdHkiLCJncmFudF90eXBlIjoidXJuOmlibTpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpwYXNzY29kZSIsInNjb3BlIjoiaWJtIG9wZW5pZCIsImNsaWVudF9pZCI6ImJ4IiwiYWNyIjoxLCJhbXIiOlsicHdkIl19.c4vLPzhvvNZLjaLy7znDa37qV4o-yuGmSKmJoQKrEQNZU8IC0NIjxwSo7W9kb0pDi3Yf_03_9ufTTGNfjtltzNWycSXjkNgoL-b9_nU61oHdgn0stY1KmNicqyBWfgUU--4xa904QN_QjRHBaUBeJf3XWEphPIMoF7mZeOxEZLnCMcQXSz9pImCMiP4SNT38cHLiI90Yx01rM7hpteepWULh5MYh-B2V03Gkgxfqvv951HF1LDg6eT4Q9in11laTQKtKuomripUju_4GIIjORVYw9NaAVKIJ9lKrPX0SKPhStsa59qGsC_7Uersms5EY1W1VbZVqOZPJbtp6tVf-Lw