Saltar al contenido

Qué significa la configuración en AWS Cognito User Pool App Client

Nuestro team especializado luego de muchos días de trabajo y de recopilar de datos, encontramos la solución, deseamos que todo este artículo sea de gran utilidad para tu proyecto.

Solución:

Aquí está mi intento de explicar estas opciones. Antes de eso me gustaría mencionar brevemente sobre Oauth2que es el protocolo en el que se basa AWS Cognito.

En el contexto de AWS Cognito, Cognito en sí mismo es el Servidor de autenticación (OAuth) y también el servidor de recursos (porque creamos usuarios en el grupo de usuarios de Cognito) y su aplicación sería la Cliente (que envía la solicitud de autenticación). El cliente primero debe registrarse en el servidor OAuth; esto es lo que se está haciendo en la sección “Clientes de aplicaciones” de Cognito.

El flujo de OAuth2 recomendado es el flujo de concesión de código de autorización. En este flujo,

i) El Cliente envía nombre de usuario/contraseña al Servidor OAuth.

ii) El servidor OAuth valida y vuelve a llamar al cliente con un
Código de Autorización.

iii) El Cliente vuelve a enviar este código al servidor OAuth

iv) El servidor OAuth envía el fichas al cliente.

Lea el artículo vinculado anterior para obtener más explicaciones sobre OAuth2.

Ahora explicando las opciones en la configuración de Cognito App Client:

1. Habilite la API de inicio de sesión para la autenticación basada en servidor

Con esta opción, su aplicación cliente puede recibir directamente los tokens sin teniendo el paso adicional de obtener primero el código de autorización.

Hay API de Cognito como AdminInitiateAuth, Admin-* que hacen esto. Sin embargo, estas API requieren credenciales de administrador de AWS. Por lo tanto, estas llamadas generalmente las realiza el servidor back-end de la aplicación cliente. El front-end puede pasar el nombre de usuario/contraseña al backend y el servidor backend puede comunicarse con AWS Cognito y autorizar al usuario.

2. Permitir solo la autenticación personalizada

Aquí no utiliza el flujo de concesión de código de autorización proporcionado por OAuth. En su lugar, puede definir sus propios pasos y desafíos. Su aplicación de cliente puede hacer una pregunta secreta, etc., antes de autenticarse y dar tokens.

3. Habilite el flujo de nombre de usuario y contraseña (no SRP) para la autenticación basada en aplicaciones

Este es el flujo menos seguro. Esto salta la parte de devolver el Código de Autorización y devuelve directamente los tokens al cliente.

Espero que esto explique.

Aquí está mi opinión sobre el asunto.

El cliente de la aplicación tiene varias configuraciones de flujo de autenticación.

1. Habilite la autenticación de contraseña de nombre de usuario para las API de administración para la autenticación (ALLOW_ADMIN_USER_PASSWORD_AUTH)

Esto habilita el flujo de autenticación del lado del servidor. Si no tiene una aplicación de usuario final, sino que está utilizando un back-end seguro o una aplicación del lado del servidor.

ingrese la descripción de la imagen aquí

2. Habilite la autenticación personalizada basada en activadores lambda (ALLOW_CUSTOM_AUTH)

Esto habilita el flujo de autenticación personalizado. Esto puede ayudarlo a crear un modelo de autenticación basado en desafío/respuesta utilizando disparadores de AWS Lambda. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html

Por debajo Grupos de usuarios -> disparadores puedes ver muchas funciones lambda. Puedes usar Crear desafío de autenticación, Definir desafío de autenticación y Verificar respuesta de desafío de autenticación funciones para crear un flujo de autenticación personalizado.

3. Habilite la autenticación basada en contraseña de nombre de usuario (ALLOW_USER_PASSWORD_AUTH)

Esto habilita el flujo de autenticación del lado del cliente que utiliza autenticación basada en contraseña de usuario. En este flujo, Cognito recibe la contraseña en la solicitud.

Puede utilizar AWS Mobile SDK para Android, AWS Mobile SDK para iOS o AWS SDK para JavaScript para implementar esto.

4. Habilite la autenticación basada en el protocolo SRP (contraseña remota segura) (ALLOW_USER_SRP_AUTH)

Esto es similar al flujo anterior en la sección 3, excepto por la verificación de la contraseña. Este flujo utiliza el protocolo SRP para verificar contraseñas.

http://srp.stanford.edu/whatisit.html https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolClientType.html

ingrese la descripción de la imagen aquí

5. Habilite la autenticación basada en token de actualización (ALLOW_REFRESH_TOKEN_AUTH)

Después de una autenticación exitosa, Amazon Cognito devuelve tokens de grupos de usuarios (tres tokens) a su aplicación. Puede usar los tokens para otorgar a sus usuarios acceso a sus propios recursos del lado del servidor o a Amazon API Gateway. O bien, puede cambiarlas por credenciales temporales de AWS para acceder a otros servicios de AWS.

Los tres tokens son token de identificación (JWT), token de acceso, token de actualización. El token de actualización se puede usar para recuperar nuevos identificadores y tokens de acceso. Una vez que inicia sesión en una aplicación móvil, no necesita iniciar sesión cada vez que cierra y abre la aplicación y esta funcionalidad se implementa mediante tokens de actualización.

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html

¿Qué pasa con la interfaz de usuario alojada de Amazon Cognito?

Los clientes de aplicaciones se pueden configurar para usar páginas web integradas de Cognito para registrarse e iniciar sesión de usuarios. Al usar la interfaz de usuario alojada, puede habilitar tanto la concesión del código de autorización como la concesión del código implícito, y luego usar cada concesión según sea necesario.

https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *