Gestion des profils

Avec IBM Cloud® App ID, vous pouvez compiler des informations concernant les utilisateurs individuels de votre application sous forme de profil. Les informations contenues dans le profil peuvent être recueillies en fonction du mode d'interaction de vos utilisateurs avec votre application ou être ajoutées par vos soins pour leur compte. En stockant ces informations, vous pouvez y accéder pour pouvoir créer des expériences personnalisées de votre application pour vos utilisateurs.

Vous recherchez des informations sur vos utilisateurs Cloud Directory ? Consultez la section Gestion des utilisateurs.

Visualisation des profils d'utilisateurs dans la console

Pour afficher les données disponibles pour vos utilisateurs d'application, vous pouvez utiliser l'interface utilisateur d'App ID.

  1. Accédez à l'onglet Profils d'utilisateur > Profils de votre instance App ID.

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

  3. Dans le menu déroulant dynamique correspondant à la ligne de l'utilisateur, cliquez sur Afficher le profil utilisateur. Une page contenant les informations de l'utilisateur s'ouvre. Consultez le tableau suivant pour voir les informations présentées.

    Détails de l'utilisateur tels qu'ils apparaissent dans le tableau de bord App ID
    Détails Description
    Identificateur IDP L'identificateur IDP est émis par le fournisseur que votre utilisateur a choisi pour se connecter à votre application.
    Adresse électronique Adresse e-mail principale associée à l'utilisateur.
    Nom Prénom et nom de l'utilisateur tels qu'ils ont été émis par le fournisseur d'identité.
    Fournisseur d'identité Fournisseur que votre utilisateur a choisi pour se connecter.
    ID ID attribué à l'utilisateur par App ID.
    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 Toutes les informations associées à cet utilisateur affiché en tant qu'objet JSON.

Affichage des profils utilisateur à l'aide de l'API

Vous pouvez utiliser l'API App ID pour afficher les détails sur les utilisateurs de votre application.

  1. Obtenez votre ID titulaire depuis votre instance du service. Vous pouvez obtenir l'ID dans les données d'application de votre service ou de votre application.

  2. 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>/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=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...."
    
  3. En utilisant l'ID que vous avez obtenu à l'étape précédente, envoyez une demande GET au noeud final /users pour voir le profil utilisateur complet.

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    Exemple de réponse :

    {
       "id": "a0791903-ed4c-41cf-bd0e-a37957dad820",
       "name": "David Test-user",
       "email": "dave.test@domain.com",
       "picture": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA",
       "identities": [
          {
          "provider": "facebook",
          "id": "11122233344455566",
          "idpUserInfo": {
                "id": "11122233344455566",
                "name": "David Test-user",
                "picture": {
                "data": {
                   "height": 50,
                   "is_silhouette": false,
                   "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA",
                   "width": 50
                }
                },
                "first_name": "David",
                "last_name": "Test-user",
                "email": "dave.test@domain.com",
                "idpType": "facebook"
          }
          }
       ],
       "attributes": {
          "role": "admin"
       }
    }
    

    Pour connaître l'ensemble des données utilisateur prises en charge par App ID, consultez le schéma de base SCIM.

Définition d'attributs personnalisés dans la console

Vous pouvez ajouter des informations personnalisées sur vos utilisateurs à leur profil, par exemple leur rôle ou leurs préférences, en définissant un attribut personnalisé. Pour définir un attribut, vous pouvez utiliser l'interface utilisateur d'App ID.

Par défaut, les attributs personnalisés sont modifiables et peuvent être mis à jour à l'aide d'un jeton d'accès App ID provenant d'une application client. Sans prendre les précautions appropriées, l'utilisateur ou l'application peut mettre à jour les attributs personnalisés immédiatement après la première connexion de l'utilisateur, s'ils ont un jeton d'accès. Cela peut potentiellement avoir des conséquences inattendues. Par exemple, un utilisateur peut changer son rôle d'utilisateur en administrateur, ce qui peut octroyer des privilèges d'administration à des utilisateurs malveillants.

  1. Accédez à l'onglet Profils d'utilisateur > Paramètres du tableau de bord App ID.

  2. Faites basculer le paramètre des attributs personnalisés sur Activé.

  3. Cliquez sur Afficher le profil dans le menu déroulant dynamique de la ligne correspondant à l'utilisateur dont vous souhaitez définir l'attribut.

  4. Dans la section Attributs personnalisés, cliquez sur Editer.

  5. Entrez les attributs que vous souhaitez ajouter en tant qu'objet JSON. Par exemple, {"role":"admin"}.

Définition d'attributs personnalisés à l'aide de l'API

En tant qu'administrateur, vous pouvez ajouter des informations personnalisées sur vos utilisateurs à leur profil, par exemple leur rôle ou leurs préférences, en définissant un attribut personnalisé. Pour définir un attribut, vous pouvez utiliser l'API d'App ID pour appeler le noeud final /users. Pour définir des attributs personnalisés avant qu'un utilisateur se connecte à votre application pour la première fois, voir Pré-enregistrement de futurs utilisateurs.

Par défaut, les attributs personnalisés sont modifiables et peuvent être mis à jour à l'aide d'un jeton d'accès App ID provenant d'une application client. Cela signifie que sans précautions appropriées, l'utilisateur ou l'application peut mettre à jour des attributs personnalisés immédiatement après la première connexion de l'utilisateur, s'ils bénéficient d'un jeton d'accès. Cela peut potentiellement avoir des conséquences inattendues. Par exemple, un utilisateur peut changer son rôle d'utilisateur en administrateur, ce qui peut octroyer des privilèges d'administration à des utilisateurs malveillants.

  1. Accédez à l'onglet Profils d'utilisateur > Paramètres du tableau de bord App ID.

  2. Faites basculer le paramètre des attributs personnalisés sur Activé.

  3. Procurez-vous un jeton IAM.

    1. Dans le tableau de bord IBM Cloud, cliquez sur Gérer > Accès (IAM).

    2. Sélectionnez Clés d'API IBM Cloud.

    3. Cliquez sur Créer une clé d'API IBM Cloud.

    4. Attribuez un nom et une description à votre clé. Cliquez sur Créer. Un écran apparaît avec votre clé.

    5. Cliquez sur Copier ou Télécharger votre clé. Une fois l'écran fermé, vous ne pouvez plus accéder à la clé.

    6. Effectuez la demande cURL suivante à l'aide de la clé d'API que vous venez de créer.

      curl -k -X POST \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --header "Accept: application/json" \
      --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
      --data-urlencode "apikey=<apikey>" \
      "https://iam.cloud.ibm.com/identity/token"
      
  4. Envoyez une demande PUT au noeud final /users.

    curl -X PUT "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -H "authorization: Bearer <token>"
    -d "{ \"attributes\": { \"points\": \"150\" } { \"role\": \"admin\" }}"
    

Suppression d'un profil dans la console

En tant qu'administrateur, vous pouvez retirer une personne en tant qu'utilisateur de votre application en supprimant son profil.

  1. Accédez à l'onglet Profils d'utilisateur > Profils de votre instance App ID.

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

  3. Dans le menu déroulant dynamique de la ligne correspondant à l'utilisateur, cliquez sur Supprimer. Un écran de confirmation s'ouvre.

  4. Vérifiez que vous supprimez l'utilisateur approprié en comparant son adresse e-mail à celle qui est affichée. Si elles correspondent, cliquez sur Supprimer. Cette action ne peut pas être annulée. L'utilisateur peut être ajouté à nouveau, mais son profil indique qu'il s'agit d'un nouvel utilisateur à partir de la date à laquelle il est ajouté à nouveau.

Suppression d'un profil à l'aide de l'API

En tant qu'administrateur, vous pouvez retirer une personne en tant qu'utilisateur de votre application en supprimant son profil.

  1. Obtenez votre ID titulaire depuis votre instance du service. Vous pouvez obtenir l'ID dans les données d'application de votre service ou de votre application.

  2. 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>/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=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...."
    
  3. En utilisant l'ID que vous avez obtenu à l'étape précédente, envoyez une demande DELETE au noeud final /users pour supprimer le profil.

    curl -X DELETE "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

Migration de profils utilisateur

Vous pouvez parfois être amené à ajouter une instance d'App ID à votre compte pour garantir la haute disponibilité ou la reprise après incident, ou vous aurez éventuellement besoin de définir comme obsolète une instance de tout le service. Pour migrer les informations utilisateur, vous pouvez exporter les profils d'utilisateur depuis une instance d'App ID, puis les importer vers une autre instance.

Cette action peut être effectuée via l'API uniquement. Pour voir la marche à suivre, consultez les instructions de l'API.

Exportation de profils utilisateur

Avant d'importer vos profils dans votre nouvelle instance, vous devez les exporter de l'instance d'origine du service.

  1. Veillez à ce que l'adresse Gestionnaire Rôle de l'IAM vous soit attribuée pour les deux instances de App ID.

  2. Exportez les profils depuis votre instance d'origine du service.

    curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/export \
    --header "Accept: application/json" \
    --header "Authorization: Bearer <IAMToken>"
    
    Variables de commande d'importation d'utilisateur
    Variable Description
    tenantID ID du titulaire du service qui se trouve dans vos données d'identification du service. Vos données d'identification pour le service ou l'application sont disponibles dans le tableau de bord App ID.
    iam-token Votre jeton IAM.

    Exemple de réponse :

    {
       "itemsPerPage": 2,
       "totalResults": 2,
       "requestOptions": {},
       "users": [
       {
          "id": "7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6",
          "name": "App ID Google User profile",
          "email": "your@mail.com",
          "identities": [
             {
             "provider": "google",
             "id": "105646725068605084546",
             "idpUserInfo": {
                "id": "105646725068605084546",
                "email": "your@mail.com",
                "picture": "profilePic.jpg"
             }
             }
          ],
          "attributes": {
             "points": 150
          },
          "roles": ["admin"]
       {
          "id": "1439d777-185d-4be1-8f4a-c4e8142b87ea",
          "name": "App ID Facebook User profile",
          "email": "mail@mail.com",
          "identities": [
             {
             "provider": "facebook",
             "id": "100195207128541",
             "picture": {
                "data": {
                   "height": 50,
                   "width": 50,
                   "url": "https://url-to-idp-profile-picture.com"
                }
             },
             "first_name": "AppID",
             "last_name": "Development"
             }
          ],
          "attributes": {
             "points": 250
          },
          "roles": ["admin"]
       }
    }
    

Importation de profils utilisateur

Maintenant que vous disposez d'une liste de profils utilisateur exportés, vous pouvez les importer dans la nouvelle instance.

  1. Veillez à ce que l'adresse Gestionnaire Rôle de l'IAM vous soit attribuée pour les deux instances de App ID.

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

  3. Importez les utilisateurs dans votre nouvelle instance du service.

    curl -X POST "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/import" \
    -H "accept: application/json" \
    -H "Authorization: Bearer <bearerToken>" \
    -H "Content-Type: application/json" \
    -d "{ \"itemsPerPage\": 2, \"totalResults\": 2, \"requestOptions\": {}, \"users\": [ { \"id\": \"7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6\", \"name\": \"App ID Google User profile\", \"email\": \"your@mail.com\", \"identities\": [ { \"provider\": \"google\", \"id\": \"105646725068605084546\", \"idpUserInfo\": { \"id\": \"{ID}\", \"email\": \"your@mail.com\", \"picture\": \"{profile.jpg}\" } } ], \"attributes\": { \"points\": 150 } { \"role\": admin } }, { \"id\": \"{userinfo}\", \"name\": \"App ID Facebook User profile\", \"email\": \"mail@mail.com\", \"identities\": [ { \"provider\": \"facebook\", \"id\": \"{id}\", \"picture\": { \"data\": { \"height\": 50, \"width\": 50, \"url\": \"https://{url}.com\" } }, \"first_name\": \"AppID\", \"last_name\": \"Development\" } ], \"attributes\": { \"points\": 250 } { \"role\": admin } } ]}"
    

    Lorsque vous importez des utilisateurs dans une instance d'App ID, l'identificateur de leur fournisseur d'identité ne change pas.