Amazon web services 管理员在Cognito应用程序客户端上使用AWS CLI启动身份验证,密码为

Amazon web services 管理员在Cognito应用程序客户端上使用AWS CLI启动身份验证,密码为,amazon-web-services,amazon-cognito,aws-cli,Amazon Web Services,Amazon Cognito,Aws Cli,我试图使用AWS CLI来确认Cognito用户(将他们的状态从FORCE_change_PASSWORD更改为CONFIRMED)。我用一个没有和appsecret的App客户端成功地做到了这一点,但我不知道如何在一个有它的App客户端中做到这一点。根据AWS CLI参考,此处: 我应该可以通过传递应用程序机密来实现,如下所示: (因格式问题而拆分,我以整行形式输入) 我从web控制台上的App client secret字段获取secret值,并启用了“为基于服务器的身份验证启用登录API

我试图使用AWS CLI来确认Cognito用户(将他们的状态从FORCE_change_PASSWORD更改为CONFIRMED)。我用一个没有和appsecret的App客户端成功地做到了这一点,但我不知道如何在一个有它的App客户端中做到这一点。根据AWS CLI参考,此处:

我应该可以通过传递应用程序机密来实现,如下所示:

(因格式问题而拆分,我以整行形式输入)

我从web控制台上的App client secret
字段获取secret值,并启用了“为基于服务器的身份验证启用登录API(ADMIN\u NO\u SRP\u AUTH)”

然而,我不断得到这样的回应:
调用AdminInitiateAuth操作时发生错误(NotAuthorizedException):无法验证客户端xxxxxxxxxxxxxxxxxxxx的机密哈希值


我可能做错了什么?

按如下方式计算您的秘密散列:

Base64(HMAC_SHA256(“客户端密钥”、“用户名”+“客户端Id”) )


Ref:

您传递的秘密散列值是多少?它应该是用户id和客户端id的MAC,使用HmacSHA256在客户端密钥中签名,并用Base64编码。不,我假设我只需要Cognito提供的“App secret”。我怎么知道我是否需要这个HmacSHA256哈希?你能指出文件中的某个地方吗?是的:
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