Saltar al contenido

Cómo obtener una respuesta de identidad autenticada de AWS Cognito usando boto3

Solución:

Para pasar el token JWT del grupo de usuarios de Cognito, debe utilizar el Logins Map en el GetId Llamada a API. Puede probar el siguiente código de Python por su parte, después de reemplazar los marcadores de posición necesarios.

response = client.get_id(
    AccountId='string',
    IdentityPoolId='string',
    Logins={
        'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': '<JWT ID Token>'
    }
)

Si no proporciona un mapa de inicios de sesión, Amazon Cognito trata el evento de autenticación como no autenticado y, por lo tanto, se enfrenta a este error.

Solo para agregar a la respuesta de Arka Mukherjee anterior, para obtener el token, hago esto:

auth_data = { 'USERNAME':username , 'PASSWORD':password }
provider_client=boto3.client('cognito-idp', region_name=region)
resp = provider_client.admin_initiate_auth(UserPoolId=user_pool_id, AuthFlow='ADMIN_NO_SRP_AUTH', AuthParameters=auth_data, ClientId=client_id)
token = resp['AuthenticationResult']['IdToken']

Aquí tengo que usar el nombre de usuario y la contraseña del usuario de Cognito, client_id es la identificación del cliente de la aplicación para el cliente de la aplicación que configuré a través de Cognito, y user_pool_id es la identificación del grupo de usuarios.

Tenga en cuenta que mi cliente de aplicación tiene esta opción marcada / seleccionada: Habilite la API de inicio de sesión para la autenticación basada en servidor (ADMIN_NO_SRP_AUTH) y creé ese cliente de aplicación sin clave secreta (aparentemente eso es importante para los clientes web especialmente).

¡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 *