«Токен доступа не содержит область действия openid» в AWS Cognito - PullRequest
0 голосов
/ 20 сентября 2018

Я работаю в сервисе AWS Cognito в приложении внешнего интерфейса, которое может успешно выполнять основные действия - вход в систему, выход из системы, регистрация и т. Д.

Сейчас я пытаюсь получить пользовательские атрибуты через бэкэндAPI, такой что:

1) Пользователь входит в приложение и получает JWT.

2) JWT отправляется на внутренний сервер.

3)Сервер должен извлечь электронную почту пользователя с помощью токена доступа

. Самое близкое, что я нашел к тому, что мне нужно, это этот сервис Cognito.

Итак, яЯ делаю запрос GET на "https://mydomain.auth.eu -central-1.amazoncognito.com / oauth2 / userInfo " с заголовком авторизации, как они просят, но я продолжаю получать этот ответ:

{"error": "invalid_token", "error_description": "Маркер доступа не содержит область действия openid"}

Я пытался найти эту ошибку, но не смог найти объясненияоб ошибке.

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 18 апреля 2019

Эрез, вы используете пользовательский интерфейс?Потому что пользовательский интерфейс использует потоки, которые полностью отделены от потоков OAuth2 (USER_SRP_AUTH, USER_PASSWORD_AUTH).Токены, выпущенные с этими потоками, не совместимы с OpenID Connect (в основном они не содержат область действия openid), поэтому вы не можете использовать их для сбора пользовательской информации (поскольку конечная точка userinfo совместима с OpenID Connect и должна вызываться с помощью jwts, совместимого сСтандарт OIDC).Мы тоже с этим боремся, извините.

0 голосов
/ 09 мая 2019

У меня была именно эта проблема, и это была моя вина.Я посылал id_token вместо access_token свойства токена.
Я программирую на PHP, поэтому я отправлял как заголовок "Authorization: Bearer ".$token->id_token вместо "Authorization: Bearer ".$token->access_token.Теперь это работает.

Надеюсь, это поможет вам или кому-то.

0 голосов
/ 21 сентября 2018

Если я правильно понимаю, вы успешно получаете #id_token, отправленный на ваш интерфейс из Cognito (шаги 1-3).Вы можете включить области на #id_token, выбрав следующие параметры в настройках клиента приложения Cognito Pool:

enter image description here

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