Нет подписанного запроса JWT к конечной точке обмена токенами (Google Streamlined Identity Flows).

Я хотел бы реализовать оптимизированный поток идентификации на основе этой документации: https://developers.google.com/actions/identity/oauth2-assertion-flow

Я создал свой сервер (Node.js + node-oauth2-server) и успешно протестировал его с OAuth 2.0 Playground.

Реализован поток кода авторизации, включена привязка учетных записей.

Согласно документации: «Когда Google требуется доступ к ресурсам вашей службы, и пользователь вошел в свою учетную запись Google, Google отправляет подписанный JWT с информацией о пользователе в вашу конечную точку обмена токенами».

Ожидаемый запрос:

POST /token HTTP/1.1

Host: oauth2.example.com

Content-Type: application/x-www-form-urlencoded

grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=ACTION&assertion=JWT&consent_code=CONSENT

Проблема в том, что такого запроса нет, конечная точка токена вызывается с grant_type=authorization_code без какой-либо информации JWT.

Я попробовал демо-версию привязки аккаунта Google и симулятор действий, результаты те же.

Почему отсутствует запрос JWT grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer? Что нужно изменить, чтобы получать такие запросы?


person kissgab    schedule 12.10.2017    source источник


Ответы (1)


Я столкнулся с той же проблемой. В моем случае каждый раз, когда я проверял «Быструю привязку аккаунта», у меня возникала ошибка во время тестов с симулятором. И в итоге "бесшовной привязкой аккаунта" заниматься не стали.

Мне было достаточно заполнить поле «Ссылка на условия обслуживания» в информации о приложении, чтобы симулятор начал тест без ошибок.

Затем я увидел экран, описанный в документе «Обмен утверждениями JWT для токенов», который позволяет выбрать учетную запись Google, после чего Google отправил на мой сервер OAuth2 запрос с помощью grant_type = urn: ietf: params: oauth: grant-type: jwt- носитель и я увидел появление знаменитого веб-токена JSON (JWT) (для тестовой аутентификации вы должны использовать https://gala-demo.appspot.com/ с названием проекта с _dev).

В моем случае теперь хорошо работает бесшовная привязка аккаунтов.

Я надеюсь, что это может помочь.

person Marc Bordessoule    schedule 28.10.2017
comment
Марк, ты спас положение! Большое спасибо! Я дважды проверил условия и URL-адреса конфиденциальности и обнаружил ошибку-опечатку. После фикса теперь работает отлично (по крайней мере на странице гала-демо - в симуляторе до сих пор нет JWT grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer запроса). - person kissgab; 02.11.2017