在具有秘密

时间:2018-11-21 13:26:38

标签: amazon-web-services amazon-cognito aws-cli

我正在尝试使用AWS CLI确认Cognito用户(将其状态从 FORCE_CHANGE_PASSWORD 更改为 CONFIRMED )。我使用没有的App客户端和应用机密成功完成了此操作,但是我不知道如何在有一个客户端的App客户端中做到这一点。根据AWS CLI参考,在这里:

https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-initiate-auth.html

我应该可以通过传递App密码来做到这一点,就像这样:

(为格式化而分解,我将其输入为完整行)

aws cognito-idp admin-initiate-auth 
    --user-pool-id us-east-1_xxxxxxxx 
    --region=us-east-1 
    --client-id xxxxxxxxxxxxxxxxxxxxx
    --auth-flow ADMIN_NO_SRP_AUTH
    --auth-parameters
        USERNAME=TestUser
        PASSWORD='Test_Password'
        SECRET_HASH=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
    --profile AwsProfile

我从Web控制台上的 App客户机密字段中获取了机密值,并且我也启用了“启用用于基于服务器的身份验证的登录API(ADMIN_NO_SRP_AUTH)”。

但是,我一直收到以下答复: An error occurred (NotAuthorizedException) when calling the AdminInitiateAuth operation: Unable to verify secret hash for client xxxxxxxxxxxxxxxxxxxxxxx

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

按如下方式计算您的SECRET_HASH:

  

Base64(HMAC_SHA256(“客户端密钥”,“用户名” +“客户端ID”)   )

参考:https://docs.amazonaws.cn/en_us/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash