admin-initiate-auth с AWS CLI на Cognito App-клиенте с секретом - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь использовать интерфейс командной строки AWS для подтверждения пользователей Cognito (чтобы изменить их статус с FORCE_CHANGE_PASSWORD на ПОДТВЕРЖДЕН * ).Мне удалось сделать это с клиентом приложения без и секретом приложения, но я не могу понять, как это сделать в клиенте приложения, в котором он есть.Согласно справке по интерфейсу командной строки AWS, здесь:

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

Я смогу сделать это, передав секретный ключ приложения, например:

(разбит наформатирование, я ввожу его в виде полной строки)

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

Я взял секретное значение из поля Секрет клиента приложения в веб-консоли и включил «Включить входв API для аутентификации на основе сервера (ADMIN_NO_SRP_AUTH) "тоже.

Однако я продолжаю получать этот ответ: An error occurred (NotAuthorizedException) when calling the AdminInitiateAuth operation: Unable to verify secret hash for client xxxxxxxxxxxxxxxxxxxxxxx

Что я могу делать не так?

1 Ответ

0 голосов
/ 23 ноября 2018

Вычислите ваш SECRET_HASH следующим образом:

Base64 (HMAC_SHA256 («Секретный ключ клиента», «Имя пользователя» + «Идентификатор клиента»))

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

...