IBM Cloud Docs
Gestión de perfiles

Gestión de perfiles

Con IBM Cloud® App ID, puede compilar información sobre los usuarios individuales de la aplicación en un perfil. La información en el perfil se puede obtener de los usuarios por la forma en que interactúan con la app o puede añadirlos usted mismo por ellos. Al almacenar la información, puede acceder a ella para ayudar a crear experiencias personalizadas de la app para los usuarios.

¿Busca información acerca de los usuarios de Directorio en la nube? Consulte gestión de usuarios.

Visualización de los perfiles de usuario en la consola

Para ver los datos disponibles para los usuarios de la app, puede utilizar la interfaz de usuario de App ID.

  1. Vaya al separador Perfiles de usuario > Perfiles de su instancia de App ID.

  2. Busque en la tabla o busque utilizando una dirección de correo electrónico para encontrar el usuario del que desea ver la información. El término de búsqueda debe ser exacto.

  3. En el menú de desbordamiento de la fila del usuario, pulse Ver perfil de usuario. Se abrirá una página que contiene la información de usuario. Consulte la tabla siguiente para ver la información que puede ver.

    Detalles del usuario tal y como se muestran en el panel App ID
    Detalle Descripción
    Identificador IdP El identificador IdP lo emite el proveedor con el que el usuario ha elegido iniciar sesión en la aplicación.
    Correo electrónico La dirección de correo electrónico principal conectada al usuario.
    Nombre El nombre y el apellido del usuario que proporciona el proveedor de identidad.
    Proveedor de identidad El proveedor con el que el usuario ha elegido iniciar sesión.
    ID El ID que App ID asigna al usuario.
    Atributos personalizados Los atributos personalizados son información adicional que se añade al perfil o que se aprende acerca de los usuarios a medida que interactúan con la aplicación.
    Resumen Toda la información asociada a ese usuario se muestra como un objeto JSON.

Visualización de perfiles de usuario con la API

Puede utilizar la API de App ID para ver información detallada sobre los usuarios de la app.

  1. Obtenga el ID de arrendatario de la instancia del servicio. Puede encontrar el ID en las credenciales del servicio o de la aplicación.

  2. Busque entre los usuarios de App ID con una consulta identificativa, como por ejemplo una dirección de correo electrónico, para encontrar el ID de usuario.

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    Ejemplo:

    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. Utilizando el ID que ha obtenido en el paso anterior, realice una solicitud GET en el punto final /users para ver el perfil de usuario completo.

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

    Respuesta de ejemplo:

    {
       "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"
       }
    }
    

    Para ver el conjunto completo de datos de usuario que admite App ID, consulte el esquema básico de SCIM.

Establecer atributos personalizados en la consola

Puede añadir información personalizada sobre los usuarios a su perfil, como un rol que tienen o de preferencia, estableciendo un atributo personalizado. Para establecer un atributo, puede utilizar la interfaz de usuario de App ID.

De forma predeterminada, es posible modificar y actualizar los atributos mediante la señal de acceso de App ID desde una aplicación de cliente. Sin tomar las precauciones adecuadas, el usuario o la aplicación pueden actualizar los atributos personalizados inmediatamente después del primer inicio de sesión del usuario, si tienen una señal de acceso. Esto puede provocar consecuencias no deseadas. Por ejemplo, un usuario podría cambiar el rol de usuario a administrador, lo que podría exponer privilegios administrativos a usuarios malintencionados.

  1. Vaya al separador Perfiles de usuario > Valores del panel de control de App ID.

  2. Cambie los atributos personalizados a Habilitado.

  3. Pulse Ver perfil en el menú de desbordamiento de la fila del usuario para el que desea establecer el atributo.

  4. En la sección Atributos personalizados, pulse Editar.

  5. Especifique los atributos que desea añadir como un objeto JSON. Por ejemplo, {"role":"admin"}.

Establecimiento de atributos personalizados con la API

Como administrador, puede añadir información personalizada sobre los usuarios a su perfil, como un rol que tienen o de preferencia, estableciendo un atributo personalizado. Para establecer un atributo, puede utilizar la API de App ID para llamar al punto final /users. Para establecer atributos personalizados antes de que un usuario inicie sesión en la aplicación por primera vez, consulte Registro previo de futuros usuarios.

De forma predeterminada, es posible modificar y actualizar los atributos mediante la señal de acceso de App ID desde una aplicación de cliente. Esto significa que si no se toman las precauciones adecuadas, el usuario o la aplicación pueden actualizar atributos personalizados inmediatamente tras el inicio de sesión del primer usuario, si tienen una señal de acceso. Esto puede provocar consecuencias no deseadas. Por ejemplo, un usuario podría cambiar el rol de usuario a administrador, lo que podría exponer privilegios administrativos a usuarios malintencionados.

  1. Vaya al separador Perfiles de usuario > Valores del panel de control de App ID.

  2. Cambie los atributos personalizados a Habilitado.

  3. Obtenga una señal de IAM.

    1. En el panel de control de IBM Cloud, pulse Gestionar > Acceso (IAM).

    2. Seleccione Claves de API de IBM Cloud.

    3. Pulse Crear una clave de API de IBM Cloud.

    4. Asigne un nombre y una descripción a la clave. Pulse Crear. Aparecerá una pantalla con la clave.

    5. Pulse Copiar o Descargar la clave. Una vez que cierre la pantalla, ya no podrá acceder a la clave.

    6. Realice la siguiente solicitud cURL con la clave de API que ha creado.

      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. Realice una solicitud PUT a un punto 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\" }}"
    

Borrar un perfil en la consola

Como administrador, puede eliminar a alguien como usuario de la aplicación suprimiendo su perfil.

  1. Vaya al separador Perfiles de usuario > Perfiles de su instancia de App ID.

  2. Busque en la tabla o busque utilizando una dirección de correo electrónico para encontrar el usuario del que desea ver la información. El término de búsqueda debe ser exacto.

  3. En el menú de desbordamiento de la fila del usuario, pulse Suprimir. Se abrirá una pantalla de confirmación.

  4. Verifique que está suprimiendo el usuario correcto comprobando su correo electrónico con el que se visualiza. Si es el usuario correcto, pulse Suprimir. Esta acción no se puede deshacer. El usuario puede volver a agregarse, pero su perfil muestra que es un usuario nuevo a partir de la fecha en que se vuelve a agregar.

Supresión de un perfil con la API

Como administrador, puede eliminar a alguien como usuario de la aplicación suprimiendo su perfil.

  1. Obtenga el ID de arrendatario de la instancia del servicio. Puede encontrar el ID en las credenciales del servicio o de la aplicación.

  2. Busque entre los usuarios de App ID con una consulta identificativa, como por ejemplo una dirección de correo electrónico, para encontrar el ID de usuario.

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    Ejemplo:

    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. Utilizando el ID que ha obtenido en el paso anterior, realice una solicitud DELETE en el punto final /users para suprimir el perfil.

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

Migración de perfiles de usuario

En ocasiones, es posible que tenga que añadir una instancia de App ID a la cuenta para ayudar a garantizar la alta disponibilidad o la recuperación tras desastre. O bien, es posible que tenga que poner en desuso una instancia del servicio todos juntos. Para migrar la información de usuario, puede exportar los perfiles de usuario de una instancia de App ID e importarlos a otro.

Esta acción solo se puede realizar a través de la API. Para ver los pasos, cambie a las instrucciones de la API.

Exportación de perfiles de usuario

Antes de importar sus perfiles a la nueva instancia, tiene que exportarlos desde la instancia original del servicio.

  1. Asegúrese de tener asignado el rol de IAM de Gestor para la instancia de App ID.

  2. Exporte los perfiles desde la instancia original del servicio.

    curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/export \
    --header "Accept: application/json" \
    --header "Authorization: Bearer <IAMToken>"
    
    Variables del mandato de importación de usuario
    Variable Descripción
    tenantID El ID de arrendatario de servicio se puede encontrar en las credenciales de servicio. Encontrará las credenciales del servicio o de la aplicación en el panel de control de App ID.
    iam-token Su señal IAM.

    Respuesta de ejemplo:

    {
       "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"]
       }
    }
    

Importación de perfiles de usuario

Ahora que tiene una lista de perfiles de usuario exportados, puede importarlos en la instancia nueva.

  1. Asegúrese de tener asignado el rol de IAM de Gestor para la instancia de App ID.

  2. Si los usuarios tienen roles asignados, asegúrese de crear los roles y los ámbitos en su instancia nueva de App ID.

    Los roles y los ámbitos se tienen que crear exactamente tal como estaban en la instancia anterior con la misma ortografía.

  3. Importe los usuarios a la nueva instancia de servicio.

    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 } } ]}"
    

    Cuando importa usuarios a una instancia de App ID, su identificador de proveedor de identidad sigue siendo el mismo.