Замена Google Sign-In для веб-сайтов с облачным Identity-Aware Proxy - PullRequest
0 голосов
/ 11 июня 2018

Существует открытый запрос функции для метабазы ​​для поддержки IAP.Я попробовал это сделать и реализовал в Clojure шаги, подробно описанные в Защита вашего приложения с помощью подписанных заголовков (т.е. проверка заголовка токена, проверка полезной нагрузки токена, получение идентификатора пользователя).

Но этот вопрос не обязательно специфичен для метабазы.Общая идея состоит в том, чтобы заменить Google Sign-In и использовать только подписанные заголовки IAP для аутентификации и создания пользователей в приложении на Google App Engine (в частности, в среде GAE flex).

«Проблема» заключается в том, чтоИдентификационная информация пользователя из токена IAP выглядит следующим образом: {"email":"alice@example.com","sub":"accounts.google.com:118133858486581853996"}.Я также натолкнулся на Использование специальных URL , но это возвращает что-то вроде: {"email":"accounts.google.com:USER_EMAIL","sub":"accounts.google.com:118133858486581853996"}.

С помощью токена входа в Google я могу получить значения для given_name и family_nameвместе с email, что означает, что я могу получить или создать действительного пользователя метабазы.Есть ли способ получить имя и фамилию через JWT sub, (т.е. accounts.google.com:118133858486581853996)?

1 Ответ

0 голосов
/ 11 июня 2018

Хм, если у них есть общедоступный профиль, вы можете передать число после "accounts.google.com:" на https://developers.google.com/+/web/api/rest/latest/people/get.К сожалению, вы не сможете аутентифицироваться в этом API как пользователь, поскольку в настоящее время IAP не предоставляет способ вызова, позволяющий пользователям делегировать доступ для вызова API Google.(Вам придется использовать служебную учетную запись для вызова этого API.)

Другое решение было бы, если бы IAP предоставил способ: а) указать дополнительные области в своем запросе OAuth для Google, и если он затемб) передав дополнительные требования из маркера OIDC в ​​JWT IAP, вы сможете настроить IAP для запроса области «профиля».Однако в настоящее время IAP запрашивает только области «email» и «openid» и не имеет механизма для указания дополнительных областей.

- Мэтью, Google Cloud IAP engineering

...