Неправильный эмитент id_token при попытке аутентификации с помощью OIDC Battle.net с помощью Cognito - PullRequest
1 голос
/ 27 сентября 2019

Последние пару дней я пытался настроить Cognito для использования Battle.net OIDC.Я верю, что я в основном там.Я вижу, что при использовании размещенного в Cognito пользовательского интерфейса он аутентифицируется правильно, но затем завершается неудачно, по-видимому, пытаясь получить токен.

Первый запрос к пользовательскому интерфейсу, расположенному в Cognito:

https://<removed>.auth.us-west-2.amazoncognito.com/oauth2/authorize?identity_provider=Blizzard&redirect_uri=https://<my-site-oauth-handler-removed>/oauth&response_type=CODE&client_id=<removed>&scope=openid

Затем следующий запрос поступает в OIDC Battle.net, как и ожидалось:

https://us.battle.net/oauth/authorize?client_id=<removed>&redirect_uri=https%3A%2F%2F<removed>.auth.us-west-2.amazoncognito.com%2Foauth2%2Fidpresponse&scope=openid&response_type=code&state=<removed>

Затем код передается по идентификатору Cognito:

https://<removed>.auth.us-west-2.amazoncognito.com/oauth2/idpresponse?code=<removed>&state=<removed>

На данный момент, если мое понимание правильное, Cognito должен попытаться поразить конечную точку battle.net /oath/token, а затем вернуть id_token и access_token моему redirect_url.Именно в этот момент Cognito вместо этого возвращает ошибку в мой URL:

https://<my-site-oauth-handler-removed>/oauth?error_description=Bad+id_token+issuer+oauth.battle.net&error=invalid_request

Судя по отсутствию документации для OIDC Battle.net, я могу быть одним из немногих, кто пытается использоватьOIDC Battle.net с Cognito.Это вполне может быть ошибкой в ​​их реализации, но я стараюсь не спешить с этим выводом.

Сейчас я думаю, что я не настроил Cognito правильно для выполнения запроса POST токена. Необходимо использовать базовую аутентификацию с clientid: password, но я не могу проверить, правильно ли он это делает или нет, так как его абстрагируют.

В любом случае, когда я делаю запрос через свойприложение (использующее ampify для открытия размещенного пользовательского интерфейса) оно возвращает, но со следующим:

[ERROR] 51:05.25 OAuth - Error handling auth response. Error: Bad+id_token+issuer+oauth.battle.net
    at OAuth.<anonymous> (OAuth.js:202)
    at step (OAuth.js:52)
    at Object.next (OAuth.js:33)
    at OAuth.js:27
    at tryCallTwo (core.js:45)
    at doResolve (core.js:200)
    at new Promise (core.js:66)
    at __awaiter (OAuth.js:23)
    at OAuth.handleAuthResponse (OAuth.js:181)
    at AuthClass.<anonymous> (Auth.js:1632)

Вот все мои соответствующие настройки Cognito:

Поставщик OIDC:

  • Имя поставщика: Blizzard
  • Идентификатор клиента: [удалено]
  • Секрет клиента: [удалено]
  • Метод запроса атрибутов: POST
  • Область авторизации: openid
  • Эмитент: https://us.battle.net/oauth

Клиент приложения:

  • Имя: [удалено]
  • Идентификатор клиента приложения: [удалено]
  • Секрет клиента приложения: (без секретного ключа)

Параметры клиента приложения:

  • Включенные поставщики удостоверений: Blizzard
  • URL обратного вызова: https://[removed]/oauth
  • URL выхода из системы: https://[removed]/oauth

  • Разрешенные потоки OAuth:

    • АвторизацияПредоставление кода
    • Неявное предоставление
  • Разрешенные области OAuth
    • электронная почта
    • openid
    • aws.cognito.signin.user.admin
    • profile
  • (я испробовал все их варианты, но результат не изменился)

Федеративная идентификация:

  • Поставщики аутентификации
    • OpenID
      • us.battle.net / oauth

Поставщики удостоверений IAM:

  • Имя поставщика: us.battle.net/oauth
  • Тип поставщика: OIDC
  • URL-адрес поставщика: нас.battle.net / oauth
  • CA Отпечаток большого пальца: [удалено]
  • Аудитория: [мой идентификатор клиента Battle.net]

Я исчерпал свои собственные ресурсы ипрошу каких-либо указаний с этим.

Спасибо!

...