web-dev-qa-db-fra.com

Comment générer un jeton d'accès pour un utilisateur AWS Cognito?

J'utilise le groupe d'utilisateurs Cognito pour sécuriser ma passerelle API. Maintenant, j'aimerais envoyer des requêtes à mon API à l'aide de postman, mais je dois passer un jeton d'autorisation car l'API est sécurisée. Existe-t-il une commande AWS CLI ou une API REST pour générer des jetons d'authentification (en transmettant un nom d'utilisateur/un mot de passe)? J'ai cherché de la documentation mais je n'ai trouvé aucun exemple. Merci de votre aide.

7
geekprogrammer

Vous pouvez le faire en utilisant les commandes CLI suivantes:

Enregistrer un utilisateur

aws cognito-idp sign-up --region {your-aws-region} --client-id {your-client-id} --username [email protected] --password password123

Confirmer l'enregistrement de l'utilisateur  

aws cognito-idp admin-confirm-sign-up --region {your-aws-region} --user-pool-id {your-user-pool-id} --username [email protected]

Authentifier (obtenir des jetons)  

aws cognito-idp admin-initiate-auth --region {your-aws-region} --cli-input-json file://auth.json

Où auth.json est:

{
    "UserPoolId": "{your-user-pool-id}",
    "ClientId": "{your-client-id}",
    "AuthFlow": "ADMIN_NO_SRP_AUTH",
    "AuthParameters": {
        "USERNAME": "[email protected]",
        "PASSWORD": "password123"
    }
}

Vous devriez obtenir une réponse comme celle-ci si tout est configuré correctement:

{
    "AuthenticationResult": {
        "ExpiresIn": 3600,
        "IdToken": "{your-idtoken}",
        "RefreshToken": "{your-refresh-token}",
        "TokenType": "Bearer",
        "AccessToken": "{your-access-token}"
    },
    "ChallengeParameters": {}
}
7
shenku

Une commande AWS CLI permet de générer des jetons d’authentification. Vous pouvez utiliser InitiateAuth CLI Command pour cela. 

Remarque: Assurez-vous que la configuration de UserPool correspond aux jetons attendus.

1
Ashan