Uso de dispositivos de usuario en el grupos de usuarios - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de dispositivos de usuario en el grupos de usuarios

Al iniciar sesión en los grupos de usuarios locales con los grupos de usuarios de Amazon CognitoAPI, puede asociar los registros de actividad de los usuarios de las funciones de seguridad avanzadas a cada uno de sus dispositivos y, de forma opcional, permitir que los usuarios se salten la autenticación multifactorial (MFA) si están en un dispositivo de confianza. Amazon Cognito incluye una clave de dispositivo en la respuesta a cualquier inicio de sesión que no incluya información del dispositivo. La clave del dispositivo está en el formato Region_UUID. Con una clave de dispositivo, una biblioteca Secure Remote Password (SRP) y un grupo de usuarios que permita la autenticación de dispositivos, puedes pedir a los usuarios de tu aplicación que confíen en el dispositivo actual y dejar de solicitar un MFA código al iniciar sesión.

Configuración de dispositivos recordados

Con los grupos de usuarios de Amazon Cognito, puede asociar los dispositivos de cada uno de sus usuarios a un identificador de dispositivo único: una clave de dispositivo. Al presentar la clave del dispositivo y realizar la autenticación del dispositivo al iniciar sesión, puede utilizar dos características.

  1. Gracias a las características de seguridad avanzadas, puede monitorizar la actividad de los usuarios en dispositivos concretos con fines de seguridad y análisis. Cuando los usuarios inician sesión, su aplicación tiene la opción de autenticar a cada usuario y su dispositivo, agregando la información del dispositivo a sus registros de actividad.

  2. La función de recordar dispositivos también permite un flujo de autenticación de dispositivos de confianza, en el que los usuarios pueden optar por iniciar sesión sin ella MFA hasta más adelante, según lo determinen los requisitos de seguridad de la aplicación o las preferencias de los usuarios. Por ejemplo, la aplicación puede solicitar a los usuarios que confíen en un dispositivo durante 30, 60 o 90 días. Puede almacenar esta fecha en un atributo personalizado y, en esa fecha, cambiar el estado recordado de su dispositivo. A continuación, debes volver a solicitar al usuario que envíe un MFA código y configurar el dispositivo para que se recuerde de nuevo tras una autenticación correcta.

    Los dispositivos recordados MFA solo se pueden anular en los grupos de usuarios que estén activadosMFA.

Cuando el usuario inicia sesión con un dispositivo recordado, debe realizar una autenticación de dispositivo adicional durante el flujo de autenticación. Para obtener más información, consulte Inicio de sesión con un dispositivo.

Configure su grupo de usuarios para que recuerde dispositivos en la pestaña Experiencia de inicio de sesión del grupo de usuarios, en Seguimiento de dispositivos. Cuando configura la funcionalidad de recordar los dispositivos a través de la consola de Amazon Cognito, dispone de tres opciones: Always (Siempre), User Opt-In (Activación por usuario) y No.

No recordar

Su grupo de usuarios no sugiere a los usuarios que se recuerden los dispositivos cuando inician sesión.

Recordar siempre

Cuando tu aplicación confirma el dispositivo de un usuario, tu grupo de usuarios siempre recuerda el dispositivo y no devuelve MFA problemas cuando se inicia sesión correctamente en el dispositivo en el futuro.

Opción de usuario

Cuando tu aplicación confirma el dispositivo de un usuario, tu grupo de usuarios no suprime MFA automáticamente los desafíos. Debe presentar un mensaje para que el usuario elija si quiere que se recuerde su dispositivo.

Al elegir Recordar siempre o Opción de usuario, Amazon Cognito genera una clave de identificación del dispositivo y un secreto cada vez que un usuario inicia sesión desde un dispositivo no identificado. La clave del dispositivo es el identificador inicial que la aplicación envía al grupo de usuarios cuando el usuario autentica el dispositivo.

Con cada dispositivo de usuario confirmado, ya sea que se recuerde automáticamente o por opción de usuario, puede usar la clave y el secreto del identificador del dispositivo para autenticar un dispositivo cada vez que un usuario inicie sesión.

También puedes configurar los ajustes de los dispositivos recordados para tu grupo de usuarios en una solicitud CreateUserPoolo UpdateUserPoolAPI. Para obtener más información, consulte la DeviceConfigurationpropiedad.

Los grupos de usuarios de Amazon Cognito API tienen operaciones adicionales para los dispositivos recordados.

  1. ListDevicesy AdminListDevicesdevuelve una lista de las claves del dispositivo y sus metadatos para un usuario.

  2. GetDevicey AdminGetDevicedevuelve la clave del dispositivo y los metadatos de un solo dispositivo.

  3. UpdateDeviceStatusy AdminUpdateDeviceStatusconfigura el dispositivo de un usuario como recordado o no recordado.

  4. ForgetDevicey AdminForgetDeviceeliminar el dispositivo confirmado de un usuario de su perfil.

APIlas operaciones con nombres que comiencen por Admin se utilizan en aplicaciones del lado del servidor y deben autorizarse con IAM credenciales. Para obtener más información, consulte Uso de los grupos de usuarios API y el servidor de autorización.

Obtención de la clave del dispositivo

Cada vez que el usuario inicie sesión en los grupos de usuarios API y no incluya una clave de dispositivo en los parámetros de autenticaciónDEVICE_KEY, Amazon Cognito devolverá una nueva clave de dispositivo en la respuesta. En su aplicación pública del lado del cliente, coloque la clave del dispositivo en el almacenamiento de la aplicación para poder incluirla en futuras solicitudes. En su aplicación confidencial del lado del servidor, configure una cookie del navegador u otro token del lado del cliente con la clave del dispositivo de su usuario.

Para que el usuario pueda iniciar sesión con su dispositivo de confianza, la aplicación debe confirmar la clave del dispositivo y proporcionar información adicional. Genere una ConfirmDevicesolicitud a Amazon Cognito que confirme el dispositivo de su usuario con la clave del dispositivo, un nombre descriptivo, un verificador de contraseñas y una sal. Si ha configurado su grupo de usuarios para la autenticación de dispositivos según la opción del usuario, Amazon Cognito responde a su solicitud ConfirmDevice con una pregunta para que el usuario elija si desea que se recuerde el dispositivo actual. Responda con la selección de su usuario en una UpdateDeviceStatussolicitud.

Cuando confirma el dispositivo de su usuario pero no lo configura como recordado, Amazon Cognito guarda la asociación, pero continúa con el inicio de sesión sin dispositivo cuando proporciona la clave del dispositivo. Los dispositivos pueden generar registros que son útiles para la seguridad del usuario y la solución de problemas. Un dispositivo confirmado pero no recordado no aprovecha la característica de inicio de sesión, pero sí la característica de registros de monitorización de la seguridad. Al activar las características de seguridad avanzadas para el cliente de la aplicación y codificar la huella de un dispositivo en la solicitud, Amazon Cognito asocia los eventos de usuario con el dispositivo confirmado.

Para obtener una nueva clave de dispositivo
  1. Inicia la sesión de inicio de sesión de tu usuario con una InitiateAuthAPIsolicitud.

  2. Responda a todos los desafíos de autenticación RespondToAuthChallengehasta que reciba tokens JSON web (JWTs) que indiquen que la sesión de inicio de sesión de su usuario ha finalizado.

  3. En su aplicación, registre los valores que Amazon Cognito devuelve en NewDeviceMetadata en su respuesta RespondToAuthChallenge o InitiateAuth: DeviceGroupKey y DeviceKey.

  4. Genera un nuevo SRP secreto para tu usuario: una sal y un verificador de contraseñas. Esta función está disponible en las SRP bibliotecas SDKs que proporcionan.

  5. Solicite al usuario un nombre de dispositivo o genere uno a partir de las características del dispositivo del usuario.

  6. Proporcione el token de acceso, la clave del dispositivo, el nombre del dispositivo y el SRP secreto de su usuario en una ConfirmDeviceAPIsolicitud. Si su grupo de usuarios está configurado para Recordar siempre los dispositivos, el registro del usuario se habrá completado.

  7. Si Amazon Cognito responde a ConfirmDevice con "UserConfirmationNecessary": true, pida al usuario que elija si quiere que se recuerde el dispositivo. Si afirman que quieren recordar el dispositivo, genera una UpdateDeviceStatusAPIsolicitud con el token de acceso, la clave del dispositivo y el identificador del usuario"DeviceRememberedStatus": "remembered".

  8. Si has indicado a Amazon Cognito que recuerde el dispositivo, la próxima vez que inicie sesión, se le presentará un MFA desafío en lugar de un DEVICE_SRP_AUTH desafío.

Inicio de sesión con un dispositivo

Tras configurar el dispositivo de un usuario para que sea recordado, Amazon Cognito ya no le exige que envíe un MFA código al iniciar sesión con la misma clave de dispositivo. La autenticación del dispositivo solo reemplaza el desafío MFA de autenticación por un desafío de autenticación del dispositivo. Los usuarios no pueden iniciar sesión únicamente con la autenticación del dispositivo. El usuario debe completar primero la autenticación con su contraseña o con un desafío personalizado. A continuación se muestra el proceso de autenticación de un usuario en un dispositivo recordado.

Para realizar la autenticación de dispositivos en un flujo que utiliza activadores Lambda de desafío de autenticación personalizados, pase un DEVICE_KEY parámetro en su InitiateAuthAPIsolicitud. Cuando el usuario supere todos los desafíos y el desafío CUSTOM_CHALLENGE devuelva un valor issueTokens de true, Amazon Cognito devolverá un último desafío DEVICE_SRP_AUTH.

Para iniciar sesión con un dispositivo
  1. Recupere la clave del dispositivo de su usuario del almacenamiento del cliente.

  2. Inicie la sesión de inicio de sesión del usuario con una InitiateAuthAPIsolicitud. Elija un AuthFlow de USER_SRP_AUTH, REFRESH_TOKEN_AUTH, USER_PASSWORD_AUTH o CUSTOM_AUTH. En AuthParameters, agregue la clave del dispositivo de su usuario al parámetro DEVICE_KEY e incluya los demás parámetros necesarios para el flujo de inicio de sesión seleccionado.

    1. También puede transferir DEVICE_KEY en los parámetros de una respuesta PASSWORD_VERIFIER a un desafío de autenticación.

  3. Complete las respuestas al desafío hasta que reciba un desafío DEVICE_SRP_AUTH en la respuesta.

  4. En una RespondToAuthChallengeAPIsolicitud, envía un ChallengeName de DEVICE_SRP_AUTH y los parámetros para USERNAMEDEVICE_KEY, ySRP_A.

  5. Amazon Cognito responde con un desafío DEVICE_PASSWORD_VERIFIER. Esta respuesta al desafío incluye valores para SECRET_BLOCK y SRP_B.

  6. Con su SRP biblioteca, genere y envíe PASSWORD_CLAIM_SIGNATUREPASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMPUSERNAME, y DEVICE_KEY parámetros. Envíelos en una solicitud RespondToAuthChallenge adicional.

  7. Completa desafíos adicionales hasta que recibas los del usuarioJWTs.

El siguiente pseudocódigo muestra cómo calcular los valores para la respuesta al desafío DEVICE_PASSWORD_VERIFIER.

PASSWORD_CLAIM_SECRET_BLOCK = SECRET_BLOCK TIMESTAMP = Tue Sep 25 00:09:40 UTC 2018 PASSWORD_CLAIM_SIGNATURE = Base64(SHA256_HMAC(K_USER, DeviceGroupKey + DeviceKey + PASSWORD_CLAIM_SECRET_BLOCK + TIMESTAMP)) K_USER = SHA256_HASH(S_USER) S_USER = (SRP_B - k * gx)(a + ux) x = SHA256_HASH(salt + FULL_PASSWORD) u = SHA256_HASH(SRP_A + SRP_B) k = SHA256_HASH(N + g)

Visualización, actualización y olvido de dispositivos

Puede implementar las siguientes funciones en su aplicación con Amazon CognitoAPI.

  1. Mostrar información sobre el dispositivo actual de un usuario.

  2. Mostrar una lista de todos los dispositivos del usuario.

  3. Olvidar un dispositivo.

  4. Actualizar el estado recordado de un dispositivo.

Los tokens de acceso que autorizan las API solicitudes de las siguientes descripciones deben incluir el aws.cognito.signin.user.admin alcance. Amazon Cognito añade una reclamación para este ámbito a todos los tokens de acceso que genere con los grupos de usuarios de Amazon Cognito. API Un tercero IdPs debe gestionar por separado los dispositivos y MFA para sus usuarios que se autentiquen en Amazon Cognito. En la interfaz de usuario alojada, puede solicitar el ámbito aws.cognito.signin.user.admin, pero la interfaz de usuario alojada agrega automáticamente la información del dispositivo a los registros de usuarios de seguridad avanzada y no permite recordar los dispositivos.

Visualización de información sobre un dispositivo

Puede consultar información sobre el dispositivo de un usuario para determinar si todavía está en uso. Por ejemplo, es posible que desees desactivar los dispositivos recordados después de que no hayan iniciado sesión durante 90 días.

  • Para mostrar la información del dispositivo del usuario en una aplicación de cliente público, envíe la clave de acceso del usuario y la clave del dispositivo en una solicitud. GetDeviceAPI

  • Para mostrar la información del dispositivo de su usuario en una aplicación de cliente confidencial, firme una AdminGetDeviceAPIsolicitud con AWS credenciales y envíe el nombre de usuario, la clave del dispositivo y el grupo de usuarios de su usuario.

Visualización de una lista de todos los dispositivos del usuario

Puede mostrar una lista de todos los dispositivos de sus usuarios y sus propiedades. Por ejemplo, es posible que desee comprobar que el dispositivo actual coincide con un dispositivo recordado.

  • En una aplicación de cliente público, envía el token de acceso de tu usuario en una solicitud. ListDevicesAPI

  • En una aplicación de cliente confidencial, firma una AdminListDevicesAPIsolicitud con AWS credenciales y envía el nombre de usuario y el grupo de usuarios de tu usuario.

Olvido de un dispositivo

Puede eliminar la clave del dispositivo de un usuario. Puede que desees hacerlo cuando descubras que tu usuario ya no usa un dispositivo o cuando detectes una actividad inusual y desees pedirle al usuario que vuelva a MFA completarla. Para volver a registrar el dispositivo más adelante, debe generar y almacenar una nueva clave de dispositivo.

  • En una aplicación de cliente público, envía la clave del dispositivo y el token de acceso del usuario cuando lo ForgetDeviceAPIsolicites.

  • En una aplicación de cliente confidencial, envía la clave del dispositivo y el token de acceso del usuario cuando lo solicites. AdminForgetDeviceAPI