AWS: ошибка при вызове getCredentialsForIdentity()

Я пытаюсь заставить процедуру входа работать в AWS, следуя Enhanced Authflow for Developer Authentication, упомянутому в официальная документация.

Код и на клиенте, и на сервере использует JavaScript, а я использую Node.js на стороне сервера.

Мне удалось вернуть токен OpenId клиенту, но когда я пытаюсь обменять его на учетные данные, вызвав getCredentialsForIdentity(), клиент получает эту ошибку:

NotAuthorizedException: Доступ к удостоверению «eu-west-1:xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx» запрещен.

Также на стороне сервера, когда я печатаю переменную, содержащую мой объект AWS.CognitoIdentity, и проверяю свойство cognitoidentity.config.credentialProvider, все, что я получаю, это:

{"providers":[null,null,null,null]}

Похоже, что именованный пользовательский поставщик разработчиков, который я связал с моим пулом удостоверений, должен быть там, но я, похоже, не могу его туда получить.

Любые мысли о том, где я мог ошибиться?


person Thomas Wegebrand    schedule 15.04.2016    source источник
comment
у вас достаточно прав IAM в AWS для вызова getCredentialsForIdentity?   -  person Tom    schedule 15.04.2016
comment
Я так думаю, но я не совсем уверен. Как я могу это проверить?   -  person Thomas Wegebrand    schedule 15.04.2016
comment
самый простой тест - временно предоставить права администратора и снова проверить. Просто чтобы убедиться   -  person Tom    schedule 15.04.2016
comment
Это то, что я пытаюсь сделать сейчас. Я знаю, что мне не следует использовать жестко закодированные ключи учетной записи в клиентском коде, но это для тестирования, как вы предложили. Я все еще получаю ту же ошибку.   -  person Thomas Wegebrand    schedule 15.04.2016
comment
Я, видимо, еще не разобрался с форматированием. Извиняюсь.   -  person Thomas Wegebrand    schedule 15.04.2016
comment
в документе говорится, что для того, чтобы Amazon Cognito вызывал AssumeRoleWithWebIdentity от вашего имени, с вашим пулом удостоверений должны быть связаны роли IAM, поэтому, возможно, вам также следует предоставить права роли IAM, прикрепленной к вашему пулу удостоверений?   -  person Tom    schedule 15.04.2016


Ответы (1)


Эта ошибка обычно возникает, когда вы пытаетесь получить доступ к аутентифицированному идентификатору без предоставления каких-либо токенов, связанных с этим идентификатором. Если это аутентифицированная личность, убедитесь, что вы предоставляете для нее токен.

person Jeff Bailey    schedule 15.04.2016