¿Cómo soluciono los errores de MFA en mi grupo de usuarios de Amazon Cognito?

6 minutos de lectura
0

Tengo errores de autenticación multifactor (MFA) que debo resolver en mi grupo de usuarios de Amazon Cognito.

Descripción breve

Al configurar MFA para su grupo de usuarios de Amazon Cognito, es posible que se produzcan varios tipos de errores. Si configura los mensajes del servicio de mensajes cortos (SMS) para MFA, consulte las siguientes secciones: Antes de configurar SMS para errores de MFA y MFA por SMS. Si configura contraseñas temporales de un solo uso (TOTP) para MFA, consulte las siguientes secciones: Antes de configurar TOTP para errores de MFA y TOTP para MFA.

Resolución

Antes de configurar SMS para MFA

Antes de configurar los SMS como factor de MFA, debe tomar medidas adicionales para enviar mensajes SMS por primera vez. Para obtener más información, consulte Configuración de mensajes SMS por primera vez en grupos de usuarios de Amazon Cognito.

Al activar la MFA y elegir SMS como segundo factor, Amazon Cognito puede enviar mensajes SMS a números de teléfono no verificados. Una vez que los usuarios hayan completado la verificación de MFA por mensaje de texto SMS, Amazon Cognito establece el atributo phone_number_verified en true.

Errores de MFA por SMS

InvalidSmsRoleAccessPolicyException

El rol de AWS Identity and Access Management (IAM) de la configuración de SMS no tiene permiso para usar Amazon Simple Notification Service (Amazon SNS) para publicar.

Para resolver este error, asegúrese de adjuntar el permiso sns:Publish al rol de IAM. Además, asegúrese de que las políticas de control de servicios (SCP) no bloqueen la acción sns:Publish.

InvalidSmsRoleTrustRelationshipException

Este error se produce cuando el rol de IAM no tiene una relación de confianza válida que permita a Amazon Cognito asumirlo. Esto ocurre cuando no se confía en cognito-idp.amazonaws.com o el ID externo de la política de roles no coincide con el de la configuración de SMS del grupo de usuarios.

Para resolver este error, asegúrese de haber configurado correctamente la política de confianza del rol de IAM. Para obtener más información, consulte Configuración de mensajes SMS por primera vez en grupos de usuarios de Amazon Cognito.

InvalidParameterException

Este error se produce cuando Amazon Cognito encuentra un parámetro que no es válido.

Para resolver este error, asegúrese de pasar todos los valores necesarios al parámetro SmsMfaConfiguration de la API SetUserPoolMfaConfig al configurar SMS para MFA.

Antes de configurar TOTP para MFA

Al configurar el token de software TOTP para MFA en su grupo de usuarios de Amazon Cognito, añada MFA a su grupo de usuarios antes de configurar el token TOTP.

A menos que un usuario ya esté autenticado, no puede asociar los tokens TOTP a un usuario hasta que el usuario intente iniciar sesión en su aplicación.

MFA no admite usuarios federados en un grupo de usuarios.

Errores de TOTP para MFA

NotAuthorizedException: Access token does not have required scopes (NotAuthorizedException: el token de acceso no tiene los ámbitos requeridos)

Este error se produce cuando el token de acceso no incluye el ámbito aws.cognito.signin.user.admin requerido. El ámbito aws.cognito.signin.user.admin es obligatorio para llamar a la API AssociateSoftwareToken. Cuando un usuario inicia sesión con la API InitiateAuth, el ámbito aparece automáticamente en el token de acceso. Sin embargo, cuando un usuario utiliza una interfaz de usuario alojada para iniciar sesión, asegúrese de que el ámbito aws.cognito.signin.user.admin esté presente en el token de acceso.

NotAuthorizedException: Invalid session for the user, session can only be used once (NotAuthorizedException: sesión no válida para el usuario, la sesión solo se puede usar una vez)

Este error se produce cuando un usuario usa la misma sesión más de una vez. Si un usuario recibe este error en medio de un flujo, la aplicación debe reiniciar el flujo desde el principio. Si el usuario usa una cadena de sesión al llamar a una API, no podrá volver a usar la sesión.

NotAuthorizedException: Invalid session for the user, session is expired (NotAuthorizedException: sesión no válida para el usuario, la sesión ha vencido)

Este error se produce cuando vence el tiempo de validez de la sesión. El tiempo de validez predeterminado de una sesión es de 3 minutos. Para resolver este error, cambie la configuración de duración de la sesión del flujo de autenticación del cliente de la aplicación para aumentar el tiempo de validez de la sesión a 15 minutos.

CodeMismatchException: Invalid code or auth state for the user (CodeMismatchException: código o estado de autenticación no válidos para el usuario)

Este error se produce cuando el código TOTP del usuario no es válido o el estado del usuario no es compatible con la llamada a la API. Por ejemplo, si un usuario llama a la API RespondToAuthChallenge con un desafío denominado MFA_SETUP, pero usted no configura la TOTP para MFA, se produce el error CodeMismatchException. Para resolver este error, asegúrese de que las llamadas a la API se realicen en la secuencia correcta al configurar MFA.

Este error también se produce cuando el código TOTP del usuario es demasiado antiguo para que Amazon Cognito lo acepte. Para resolver este error, asegúrese de que los dispositivos del usuario estén sincronizados con la hora real.

InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA (InvalidParameterException: el usuario no tiene la configuración de entrega configurada para activar SOFTWARE_TOKEN_MFA)

Este error se produce cuando no configuró la TOTP para y llama a las API para intentar aplicarla. Para resolver este error, antes de aplicar la TOTP a los usuarios que utilizan la API SetUserMFAPReference o la API AdminSetUserMFAPreference, configure la TOTP para MFA para los usuarios.

NotAuthorizedException: Invalid session for the user (NotAuthorizedException: sesión no válida para el usuario)

Este error se produce cuando un usuario llama a una API y proporciona una cadena de sesión que no es la cadena de sesión esperada. Este error también se produce cuando los usuarios no realizan llamadas a la API en la secuencia correcta. Para resolver este error, configure las llamadas a la API en el orden adecuado. Por ejemplo, para recibir la cadena de sesión en la respuesta, el usuario llama primero a la API InitiateAuth. Para evitar un error, compruebe que la siguiente llamada a la API utilice la cadena de sesión devuelta en su parámetro de solicitud.

EnableSoftwareTokenMFAException: Code mismatch (EnableSoftwareTokenMFAException: el código no coincide)

Este error se produce cuando un usuario no proporciona el código TOTP que Amazon Cognito espera durante la configuración de TOTP para MFA. Para resolver este error, busque el código secreto que Amazon Cognito proporciona en la API AssociateSoftwareToken y guárdelo en la aplicación de autenticación. El usuario también debe proporcionar un código TOTP actualizado desde la aplicación de autenticación.

SoftwareTokenMFANotFoundException: Software Token MFA has not been enabled by the userPool (SoftwareTokenMFANotFoundException: el grupo de usuarios no ha activado el token de software MFA)

Este error se produce cuando no ha activado la TOTP para MFA para su grupo de usuarios. Para resolver este error, configure la TOTP para MFA antes de intentar aplicarla en Amazon Cognito.

Información relacionada

Adición de MFA a un grupo de usuarios

MFA por mensaje de texto SMS

Configuración de MFA para un usuario en la API nativa de Amazon Cognito

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año