IBM Cloud Docs
Gestión de usuarios

Gestión de usuarios

Con el Directorio en la nube, puede gestionar los usuarios en un registro escalable utilizando una funcionalidad preconfigurada que mejora la seguridad y el autoservicio.

Un usuario del directorio en la nube no es lo mismo que un usuario de App ID. Los usuarios pueden registrarse en la app utilizando las distintas opciones de proveedor de identidad que haya configurado, o bien puede añadirlos a su directorio. Los usuarios que se mencionan en las secciones siguientes son los usuarios que están asociados con Cloud Directory como proveedor de identidades.

Visualización de la información de usuario

Puede ver toda la información que se conoce sobre todos los usuarios de Cloud Directory como un objeto JSON utilizando las API o utilizando el panel de control.

Visualización de la información del usuario en la consola

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

  1. Vaya al separador Directorio en la nube > Usuarios 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 detalles 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.

    Los detalles que puede ver sobre sus usuarios en el panel App ID
    Detalle Descripción
    Identificador de usuario El identificador de usuario depende del tipo de registro de usuario que ha configurado. Por ejemplo, si tiene un flujo de correo electrónico y contraseña, el identificador es el correo electrónico del usuario. Si utiliza el flujo de nombre de usuario y contraseña, el identificador es el nombre de usuario que se proporciona en el momento de registrarse.
    Correo electrónico La dirección de correo electrónico principal conectada al usuario.
    Nombre y apellidos Nombre y apellidos de su usuario tal y como lo han proporcionado durante el proceso de registro.
    Último inicio de sesión La indicación de fecha y hora de la última vez que el usuario ha iniciado la sesión en la aplicación. Nota: Si ha añadido al usuario a través del panel de control, el inicio de sesión está en blanco hasta que el usuario inicia sesión en la app. Cuando se produce el inicio de sesión, también pasa a ser un usuario de App ID.
    ID El ID que App ID asigna al usuario. En la consola no se muestra pero puedes copiar el valor y pegarlo en un editor de texto para ver el valor.
    Atributos predefinidos Los atributos predefinidos son cosas que se conocen acerca de un usuario basado en SCIM.
    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 Todos los atributos se compilan para formar un perfil que le proporciona una visión general completa del usuario de Cloud Directory. Para obtener más información, consulte perfiles de usuario.

Visualización de la información del 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.

  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>/cloud_directory/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=user@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 cloud_directory/users para ver el perfil de usuario completo.

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

    Respuesta de ejemplo:

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

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

Añadir usuarios

Cuando un usuario se registra en la aplicación, se añade al directorio de usuarios. A efectos de prueba, puede añadir a un usuario a través del panel de control de App ID o utilizando la API.

Cuando un usuario se registra en su aplicación, lo hace a través de un flujo de trabajo de autoservicio que activa automáticamente mensajes de correo electrónico como por ejemplo un mensaje de bienvenida o una solicitud de verificación. Cuando usted, como administrador, añade un usuario a su app, no se inicia un flujo de trabajo de autoservicio, lo que significa que los usuarios no reciben ningún correo electrónico de la aplicación. Si quieres que tus usuarios sigan recibiendo notificaciones de que han sido añadidos, puedes activar los flujos de mensajería a través de la API de gestión App ID.

Si inhabilita el registro de autoservicio o añade a un usuario, el usuario no recibirá un correo electrónico de bienvenida o de verificación cuando se le añada.

Añadir usuarios en la consola

  1. Vaya al separador Directorio en la nube > Usuarios del panel de control de App ID.

  2. Pulse Añadir usuario. Se abrirá un formulario.

  3. Escriba un Nombre, Apellido, Correo electrónico y Contraseña. Asegúrese de que el correo electrónico que intenta registrar no lo tenga otro usuario. Para estar seguro de que ha escrito correctamente la contraseña, confirme la contraseña introduciéndola en el campo Vuelva a escribir la contraseña.

  4. Pulse Guardar. Se crea un usuario del directorio en la nube.

Adición de usuarios con la API

  1. Obtenga el ID de arrendatario de la aplicación o de las credenciales de servicio.

  2. Obtenga una señal de IBM Cloud IAM.

    curl -X GET "https://iam.cloud.ibm.com/oidc/token" \
    -H "accept: application/x-www-form-urlencoded"
    
  3. Ejecute el mandato siguiente para crear un nuevo usuario y un perfil a la vez.

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

Supresión de usuarios

Si desea eliminar un usuario de su directorio, puede hacerlo desde la consola o utilizando las API.

Eliminación de un único usuario en la consola

  1. Vaya al separador Directorio en la nube > Usuarios del panel de control de App ID.

  2. Pulse sobre el recuadro de selección situado junto al usuario que desea suprimir. Se abrirá un recuadro.

  3. En el recuadro, pulse Suprimir. Se abre una pantalla.

  4. Confirme que comprende que la acción de suprimir un usuario no se puede deshacer pulsando Suprimir. Si la acción fue un error, puede volver a añadir el usuario al directorio, pero cualquier información acerca de ese usuario ya no estará disponible.

Supresión de un único usuario con la API

  1. Obtenga el ID de arrendatario.

  2. Obtenga una señal de IBM Cloud IAM.

    curl -X GET "https://iam.cloud.ibm.com/oidc/token" \
    -H "accept: application/x-www-form-urlencoded"
    
  3. Utilizando el correo electrónico que está conectado al usuario, busque el ID del usuario en el directorio.

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users?email=<user@domain.com>" \
    -H "accept: application/json"
    
  4. Suprima el usuario.

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

Supresión de varios usuarios con la API

También puede suprimir de forma masiva los usuarios de Cloud Directory y sus perfiles correspondientes utilizando la API de supresión masiva.

Puede suprimir hasta 100 usuarios por solicitud.

  1. Obtenga el ID de arrendatario.

  2. Obtenga una señal de IBM Cloud IAM.

    curl -X GET "https://iam.cloud.ibm.com/oidc/token" \
    -H "accept: application/x-www-form-urlencoded"
    
  3. Suprima los usuarios ejecutando el mandato siguiente con una lista de los ID de usuario.

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

Migración de usuarios

En ocasiones, es posible que tenga que añadir una instancia de App ID. Para facilitar la migración a la nueva instancia, puede utilizar las API de exportación e importación para migraciones menores. Si está migrando un número considerable de usuarios (16.000 o más), puede exportarlos o importarlos todos con una única solicitud de API para mejorar su eficacia.

Debe tener asignado el Managerrol de IAM de para ambas instancias de App ID.

Exportación de todos los usuarios

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

Si está exportando muchos usuarios (16.000 o más), puede utilizar el punto final de la API de export/all.

  1. Exporte todos los usuarios de su instancia original del servicio.

    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"}'
    
  2. Obtenga el estado de su solicitud, según sea necesario.

    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>'
    
  3. Cuando la exportación está lista o si la solicitud falla, se envía un correo electrónico a la dirección de correo electrónico proporcionada. Para descargar la exportación, utilice la 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>'
    

    Sólo se crea un archivo de exportación cuando la solicitud de exportación es satisfactoria. Si la solicitud falla, para reducir el riesgo de vulnerabilidad, se suprimen los datos recopilados. La exportación se suprime automáticamente después de 7 días o el número de días que especifique en el cuerpo de la solicitud (en el rango de 1 a 30 días). Puede optar por suprimir manualmente la exportación enviando una solicitud a la API delete.

    Descripciones de los parámetros que deben proporcionarse en la solicitud export/all
    Parámetros Descripción
    encryptionSecret Una serie personalizada que se utiliza para cifrar y descifrar la contraseña oculta de un usuario. Conserve el secreto de cifrado según sea necesario para utilizar la API import/all. IBM no almacena el secreto, por lo que si se pierde el secreto, no puede acceder a los datos exportados.
    emailAddress Una dirección de correo electrónico a la que se envía un correo electrónico cuando la exportación está lista o si la solicitud falla.
    expires Un entero que puede establecer (1 ≤ valor ≤ 30) para especificar el número de días después de los cuales se debe suprimir la exportación. El valor por defecto es 7.
    tenantID El ID de arrendatario de servicio se puede encontrar en las credenciales de servicio. Puede encontrar o crear sus credenciales de servicio en el panel App ID.

Exportar usuarios por lotes

El punto final de exportación está reservado para exportaciones menores de aproximadamente menos de 16.000 usuarios. Para exportar todos los usuarios de Cloud Directory que están asociados con un ID de arrendatario específico, utilice el punto final de API export/all.

  1. Exporte los usuarios desde la instancia original del servicio.

    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>'
    
    Descripciones de los parámetros que deben facilitarse en la solicitud de exportación
    Parámetros Descripción
    encryptionSecret Una serie personalizada que se utiliza para cifrar y descifrar la contraseña oculta de un usuario.
    tenantID El ID de arrendatario de servicio se puede encontrar en las credenciales de servicio. Encontrará las credenciales de servicio en el panel de control de App ID.

    Solo se devuelven los usuarios del directorio en la nube y sus perfiles. Los usuarios de otros proveedores de identidad no.

Importación de todos los usuarios

Ahora que tiene una lista de usuarios de Cloud Directory exportados, puede importarlos en la instancia nueva. Puede utilizar el punto final de la API import-all para importar un número considerable de usuarios (16.000 o más) con una sola solicitud.

  1. Importe la lista de usuarios exportados que ha descargado.

    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'
    
  2. Obtenga el estado de su solicitud, según sea necesario.

    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>'
    
    Descripciones de los parámetros que deben proporcionarse en la solicitud de importación/todos
    Parámetros Descripción
    encryptionSecret Una serie personalizada que se utiliza para cifrar y descifrar la contraseña oculta de un usuario. El secreto de cifrado es el mismo secreto que ha adjuntado a la API export/all. IBM no almacena el secreto, por lo que si se pierde el secreto, no puede acceder a los datos exportados.
    emailAddress Una dirección de correo electrónico a la que se envía un correo electrónico cuando la exportación está lista o si la solicitud falla.
    tenantID El ID de arrendatario de servicio se puede encontrar en las credenciales de servicio. Puede encontrar o crear sus credenciales de servicio en el panel App ID.
    file La salida del punto final export/download.

Importar usuarios por lotes

Puede utilizar el punto final de la API de importación para importar grupos pequeños de usuarios. Puede añadir hasta 50 usuarios por solicitud con el punto final de la API de importación. Para añadir todos los usuarios a través de una sola solicitud, utilice el punto final de API import/all.

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

  2. Los usuarios se importan con un nuevo identificador de Cloud Directory. Si la app hace referencia al identificador de Cloud Directory de alguna manera, puede optar por crear un atributo personalizado y ajustar la aplicación para que llame al atributo en lugar del identificador directamente.

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

    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 migración para exportaciones e importaciones menores

App ID proporciona un script de migración que puede utilizar a través de la CLI que puede ayudar a acelerar el proceso de migración cuando utiliza los puntos finales de API de exportación o importación. De forma alternativa, para que el proceso de migración sea aún más eficiente, puede utilizar los puntos finales de API export/all e import/all.

  1. Clone el repositorio.
git clone https://github.com/ibm-cloud-security/appid-sample-code-snippets/tree/master/export-import-cloud-directory-users.git
  1. En el terminal, vaya a la carpeta a la que ha clonado el repositorio.

  2. Ejecute el mandato siguiente.

    npm install
    
  3. Con los parámetros, ejecute el mandato siguiente.

    users_export_import 'sourceTenantId' 'destinationTenantId' 'region' 'iamToken'
    
    Descripciones de los parámetros
    Parámetro Descripción
    sourceTenantId El ID de arrendatario de la instancia de App ID desde la que va a exportar usuarios.
    destinationTenantId El ID de arrendatario de la instancia de App ID desde la que va a importar usuarios.
    region Obtenga más información sobre las regiones disponibles.
    IAM token Para obtener ayuda sobre cómo obtener una señal de IAM, consulte los documentos.

    Mandato de ejemplo:

    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