Revisión de One Time Password (OTP) Step Up Authentication

Este flujo de autenticación incluye los siguientes componentes para admitir la autenticación de refuerzo (step-up auth), utilizando contraseñas de un solo uso (OTP) enviadas por SMS:


  1. Funciones AWS Lambda: Implementan el flujo de autenticación personalizada de Amazon Cognito, utilizando Amazon Simple Notification Service (SNS) para enviar los SMS con una contraseña de un solo uso (OTP) a los usuarios.
  2. Verificación JWT: La biblioteca aws-jwt-verify se utiliza para verificar que se trata efectivamente de un caso de autenticación de refuerzo, es decir, el usuario debe poseer tokens JWT válidos.
  3. Bibliotecas de Front End: Incluyen funciones para trabajar con este flujo de autenticación personalizada, que pueden utilizarse en aplicaciones Web, React y React Native.

Vamos a hacer clic en "Manage Authenticators" y luego ingresaremos cualquier número en el campo "Consent Id" para finalmente hacer clic en el botón "SMS OTP".



Luego de lo anterior, se genera la siguiente petición:


La petición POST enviada a cognito-idp.us-east-1.amazonaws.com utiliza el método RespondToAuthChallenge del servicio Amazon Cognito Identity Provider. Los puntos clave de la petición incluyen:

  1. Challenge Name y Responses: El ChallengeName es CUSTOM_CHALLENGE, y en los ChallengeResponses se incluye un campo ANSWER con un valor dummy, y el USERNAME del usuario que intenta autenticarse.
  2. Identificación del Cliente: El ClientId identifica la aplicación cliente que realiza la solicitud.
  3. Metadatos de Cliente: El campo ClientMetadata incluye un consent_id y especifica que el método de inicio de sesión es SMS_OTP_STEPUP.




La respuesta del servidor es un HTTP 200 OK, lo que indica que la petición fue procesada exitosamente. Los puntos clave de la respuesta incluyen:

  1. Challenge Name y Parameters: El ChallengeName sigue siendo CUSTOM_CHALLENGE. En ChallengeParameters, se incluye el phoneNumber parcialmente enmascarado del usuario (+*******7646), lo que confirma que se está utilizando el método de autenticación por SMS OTP.
  2. Nueva Sesión: Se proporciona un nuevo valor de Session, que será utilizado para las siguientes interacciones en el flujo de autenticación.

Complete and Continue