Как отладить конечную точку idpresponse Cognito - PullRequest
2 голосов
/ 15 июня 2019

Я настраиваю OIDC-провайдера для пула Cognito User.Служба open id connect, которую я использую - Paypal.На этапе, когда PayPal выдает код и перенаправляет на конечную точку Cognito /oauth2/idpresponse, после чего Cognito должен обменять код на токен доступа, я получаю ошибку "Exception processing authorization code".Как видите, сообщение об ошибке не очень разборчиво.

Я понятия не имею, что я делаю неправильно.Я правильно настроил open id connect.Настройте параметры клиента в Cognito и т. Д.

Это конечные точки, которые я использую для openid connect: https://www.sandbox.paypal.com/signin/authorize https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice https://api.sandbox.paypal.com/v1/oauth2/token/userinfo https://api.sandbox.paypal.com/v1/oauth2/certs

В настройках клиента приложения у меня естьпоток разрешения кода авторизации и неявный поток включены.У меня есть пользовательская настройка домена.Я указал идентификатор клиента PayPal и его секрет

Я думаю, что если я смогу каким-то образом отладить конечную точку idpresponse, я смогу решить проблему.Есть ли способ сделать это?Может быть, облачные часы?

1 Ответ

0 голосов
/ 11 июля 2019

Я не знаю об отладке конечных точек Cognito, но у меня возникла та же проблема, и я исправил ее, выполнив следующее:

  1. Перейдите в свой пул пользователей в AWS.
  2. В боковой навигации под Федерация выберите Сопоставление атрибутов .
  3. Перейдите на вкладку провайдера идентификации, с которым у вас возникли проблемы (в моем случае это был Google).
  4. Должно быть три столбца: Capture , Атрибут Google и Атрибут пула пользователей .Убедитесь, что все атрибуты, отмеченные в столбце Capture , сопоставлены с атрибутом в столбце Атрибут пула пользователей .

    ОБНОВЛЕНИЕ:

    После отправки этого ответа я понял, что флажки в столбце Capture по умолчанию не установлены. Если вы пометили какие-либо атрибуты как обязательные в разделе Атрибуты вашего пула пользователей, вам необходимо сопоставить эти атрибуты с атрибутами, предоставленными вашими внешними поставщиками удостоверений .

    Например, я отметил email в качестве обязательного атрибута в настройках пула пользователей.Поэтому, когда я добавил Google в качестве провайдера идентификации, мне пришлось перейти на Федерация-> Сопоставление атрибутов , нажать на вкладку для Google, установить флажок в столбце Capture рядом с email и выберите Email из выпадающего списка в столбце Атрибут пула пользователей .

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

Я предполагаю, что поток аутентификации прекрасно работает между Cognito и вашим провайдером идентификации, но Cognito не знает, как сопоставить атрибуты, возвращенные провайдером идентификации, с атрибутами, установленными в вашем пуле пользователей (в Общие настройки-> Атрибуты в разделе Какие стандартные атрибуты требуются раздел).

...