MFA con token de software TOTP
Al configurar la MFA de token de software TOTP en el grupo de usuarios, el usuario inicia sesión con un nombre de usuario y una contraseña y, a continuación, utiliza una TOTP para completar la autenticación. Después de que el usuario establezca y verifique un nombre de usuario y una contraseña, puede activar un token de software TOTP para la MFA. Si la aplicación utiliza el inicio de sesión administrado de Amazon Cognito para el inicio de sesión de los usuarios, el usuario envía el nombre de usuario y la contraseña y, a continuación, envía la contraseña TOTP en una página de inicio de sesión adicional.
Puede activar la MFA con TOTP para el grupo de usuarios en la consola de Amazon Cognito o utilizar las operaciones de la API de Amazon Cognito. En el nivel del grupo de usuarios, puede llamar a SetUserPoolMfaConfig para configurar la MFA y activarla con TOTP.
nota
Si no activa la MFA con token de software de TOTP para el grupo de usuarios, Amazon Cognito no podrá usar el token para asociar ni verificar usuarios. En este caso, los usuarios reciben un excepción SoftwareTokenMFANotFoundException con la descripción Software Token MFA has not been enabled by the userPool. Si posteriormente desactiva la MFA con token de software para el grupo de usuarios, los usuarios que asociaron y verificaron previamente un token de TOTP podrán seguir utilizándolo para la MFA.
La configuración de TOTP para el usuario es un proceso de varios pasos en el que el usuario recibe un código secreto que valida introduciendo una contraseña de un solo uso. A continuación, se puede activar la MFA con TOTP para el usuario o configurar TOTP como método de MFA preferido para el usuario.
Cuando configure su grupo de usuarios para solicitar que MFA con TOTP y sus usuarios se registren en su aplicación en el inicio de sesión administrado, Amazon Cognito automatiza el proceso del usuario. Amazon Cognito pide al usuario que elija un método de MFA, muestra un código QR para configurar su aplicación de autenticación y verifica su registro de MFA. En los grupos de usuarios en los que ha permitido a los usuarios elegir entre MFA por SMS y TOTP, Amazon Cognito también ofrece al usuario una selección de métodos.
importante
Cuando tiene una ACL web de AWS WAF asociada a un grupo de usuarios y una regla de la ACL web presenta un CAPTCHA, puede provocar un error irrecuperable en el registro de TOTP del inicio de sesión administrado. Para crear una regla que tenga una acción CAPTCHA y no afecte al TOTP del inicio de sesión administrado, consulte Configuración de su ACL web de AWS WAF para el inicio de sesión administrado en la MFA con TOTP. Para obtener más información sobre ACL web de AWS WAF y Amazon Cognito, consulte Asociar un ACL web de AWS WAF con un grupo de usuarios.
Para implementar la MFA con TOTP en una interfaz de usuario personalizada con un AWS SDK y la API de grupos de usuarios de Amazon Cognito, consulte Configuración de MFA con TOTP para un usuario.
Para añadir la MFA a un grupo de usuarios, consulte Adición de MFA a un grupo de usuarios..
Condiciones y limitaciones de la MFA con TOTP
-
Amazon Cognito admite la MFA con token de software a través de una aplicación de autenticación que genera códigos de TOTP. Amazon Cognito no admite la MFA basada en hardware.
-
Cuando el grupo de usuarios requiere una TOTP para un usuario que no la ha configurado, este recibe un token de acceso de un solo uso que la aplicación puede utilizar para activar la MFA con TOTP para dicho usuario. Los intentos de inicio de sesión posteriores fallarán hasta que el usuario haya registrado un factor de inicio de sesión adicional con TOTP.
-
Un usuario que se registra en el grupo de usuarios con la operación de la API
SignUpo a través del inicio de sesión administrado recibirá tokens de un solo uso al finalizar el registro. -
Después de crear un usuario y de que este configure su contraseña inicial, Amazon Cognito emite tokens de un solo uso desde el inicio de sesión administrado para el usuario. Si establece una contraseña permanente para el usuario, Amazon Cognito emite tokens de un solo uso cuando el usuario inicia sesión por primera vez.
-
Amazon Cognito no emite tokens de un solo uso a un usuario creado por un administrador que inicia sesión con las operaciones de la API InitiateAuth o AdminInitiateAuth. Después de que el usuario supere el desafío de establecer su contraseña inicial o si usted establece una contraseña permanente para el usuario, Amazon Cognito desafía inmediatamente al usuario para que configure la MFA.
-
-
Si un usuario de un grupo de usuarios que requiere la MFA ya ha recibido un token de acceso de un solo uso pero no ha configurado la MFA con TOTP, el usuario no podrá iniciar sesión en el inicio de sesión administrado hasta que haya configurado la MFA. En lugar del token de acceso, puede usar el valor de respuesta de
sessionde un desafíoMFA_SETUPpara InitiateAuth o AdminInitiateAuth en una solicitud AssociateSoftwareToken. -
Si los usuarios han configurado una TOTP, pueden usarla para la MFA, incluso si posteriormente desactiva la TOTP para el grupo de usuarios.
-
Amazon Cognito solo acepta las TOTP de las aplicaciones de autenticación que generan códigos con la función de hash HMAC-SHA1. Los códigos generados con la función de inserción SHA-256 devuelven un error de
Code mismatch.
Configuración de MFA con TOTP para un usuario
Cuando un usuario inicia sesión por primera vez, la aplicación utiliza su token de acceso de un solo uso para generar la clave privada TOTP y presentarla al usuario en formato de texto o código QR. El usuario configura su aplicación de autenticación y proporciona un TOTP para los intentos de inicio de sesión posteriores. Su aplicación o el inicio de sesión administrado presentan el TOTP a Amazon Cognito en las respuestas al desafío de MFA.
En algunas circunstancias, el inicio de sesión administrado solicita a los nuevos usuarios que configuren un autenticador TOTP. Para obtener más información, consulte Detalles de la lógica de MFA en tiempo de ejecución del usuario.
Temas
Asociar el token de software TOTP
Para asociar el token de TOTP, debe enviar un código secreto al usuario que este debe validar con una contraseña de un solo uso. Para asociar el token se deben seguir tres pasos.
-
Cuando el usuario elija MFA con token de software TOTP, llame a AssociateSoftwareToken para que devuelva un código único de clave secreta compartida generado para la cuenta del usuario. Puede autorizar AssociateSoftwareToken con un token de acceso o con una cadena de sesión.
-
La aplicación presenta al usuario la clave privada o un código QR que usted genera a partir de la clave privada. El usuario debe introducir la clave en una aplicación que genere un TOTP, como Google Authenticator, ya sea escaneando el código QR que la aplicación genera a partir de la clave privada o introduciéndola manualmente.
-
Cuando el usuario introduce la clave o escanea el código QR en una aplicación de autenticación como Google Authenticator, la aplicación comienza a generar códigos.
Verificar el token de TOTP
A continuación, verifique el token de TOTP. Para solicitar los códigos de muestra a su usuario y proporcionárselos al servicio Amazon Cognito para confirmar que el usuario está generando correctamente códigos TOTP, siga estos pasos.
-
La aplicación solicita al usuario un código para demostrar que ha configurado correctamente su aplicación de autenticación.
-
La aplicación de autenticación del usuario muestra una contraseña temporal. La aplicación de autenticación basa la contraseña en la clave secreta que usted le dio al usuario.
-
El usuario ingresa su contraseña temporal. La aplicación pasa la contraseña temporal a Amazon Cognito en una solicitud a la API
VerifySoftwareToken. -
Amazon Cognito ha conservado la clave secreta asociada al usuario, genera un TOTP y la compara con la que proporcionó el usuario. Si coinciden,
VerifySoftwareTokendevuelve una respuestaSUCCESS. -
Amazon Cognito asocia el factor TOTP al usuario.
-
Si la operación
VerifySoftwareTokendevuelve una respuestaERROR, asegúrese de que el reloj del usuario sea correcto y de que no haya superado el número máximo de reintentos. Amazon Cognito acepta los tokens TOTP que se encuentran dentro de los 30 segundos anteriores o posteriores al intento, para tener en cuenta el sesgo menor del reloj. Cuando haya resuelto el problema, intente ejecutar de nuevo la operación VerifySoftwareToken.
Describe cómo iniciar sesión utilizando la MFA con TOTP
En este punto, el usuario inicia sesión con la contraseña temporal de un solo uso. El proceso es el siguiente.
-
El usuario ingresa el nombre de usuario y la contraseña para iniciar sesión en la aplicación cliente.
-
Se invoca el desafío de la MFA con TOTP y, desde la aplicación, se le pide al usuario que ingrese una contraseña temporal.
-
El usuario obtiene la contraseña temporal de una aplicación generadora de TOTP asociada.
-
El usuario introduce el código de TOTP en la aplicación cliente. La aplicación solicita al servicio de Amazon Cognito que la verifique. Es necesario llamar a RespondToAuthChallenge para cada inicio de sesión con objeto de obtener una respuesta al nuevo desafío de autenticación de TOTP.
-
Si Amazon Cognito verifica el token, el inicio de sesión es exitoso y el usuario continúa con el flujo de autenticación.
Eliminación del token de TOTP
Por último, la aplicación debería permitir al usuario desactivar la configuración de TOTP. En la actualidad, no puede eliminar el token del software TOTP de un usuario. Para reemplazar el token de software del usuario, asocie y verifique un nuevo token de software. Para desactivar MFA con TOTP para un usuario, llame a SetUserMFAPreference para modificar su usuario para que no utilice ninguna MFA o solo MFA por SMS.
-
Cree una interfaz en la aplicación para los usuarios que deseen restablecer la MFA. Pida a un usuario de esta interfaz que ingrese la contraseña.
-
Si Amazon Cognito devuelve un desafío de la MFA con TOTP, actualice la preferencia de MFA del usuario con SetUserMFAPreference.
-
En la aplicación, comunique al usuario que ha desactivado la MFA y pídale que vuelva a iniciar sesión.
Configuración de su ACL web de AWS WAF para el inicio de sesión administrado en la MFA con TOTP
Cuando tiene una ACL web de AWS WAF asociada a un grupo de usuarios y una regla de la ACL web presenta un CAPTCHA, puede provocar un error irrecuperable en el registro de TOTP del inicio de sesión administrado. AWS WAF Las reglas de CAPTCHA solo tienen este efecto en la MFA con TOTP en el inicio de sesión administrado y en la interfaz de usuario alojada clásica. La MFA de SMS no se ve afectada.
Amazon Cognito muestra el siguiente error cuando la regla de CAPTCHA no permite que un usuario complete la configuración de MFA con TOTP.
La solicitud no se admite debido al captcha de WAF.
Este error se produce cuando AWS WAF solicita un CAPTCHA en respuesta a las solicitudes de API AssociateSoftwareToken y VerifySoftwareToken que su grupo de usuarios realiza en segundo plano. Para crear una regla que tenga una acción CAPTCHA y no afecte al TOTP en el inicio de sesión administrado, excluya los valores del encabezado x-amzn-cognito-operation-name de AssociateSoftwareToken y VerifySoftwareToken de la acción CAPTCHA en su regla.
La siguiente captura de pantalla muestra una regla de AWS WAF de ejemplo que aplica una acción CAPTCHA a todas las solicitudes que no tienen un valor de encabezado x-amzn-cognito-operation-name de AssociateSoftwareToken o VerifySoftwareToken.
Para obtener más información sobre ACL web de AWS WAF y Amazon Cognito, consulte Asociar un ACL web de AWS WAF con un grupo de usuarios.