Получение доступа к API пользователей в среде nodejs AppEngine с помощью Identity Aware Proxy

У меня есть приложение nodejs, развернутое в AppEngine с включенным IAP, поэтому прямо сейчас доступ к его конечным точкам защищен от пользователей за пределами IAM проекта, и я получаю «x-goog-authenticated-user-id», «x-goog-authentication» -user-email "и другое утверждение jwt, подписанный заголовок x-goog, как и должно быть (как подробно описано здесь https://cloud.google.com/iap/docs/identity-howto).

В некоторых средах AppEngine (пока что Python, Java, Go) кажется, что вы можете использовать некоторые уже предоставленные библиотеки для получения дополнительной информации о пользователе с помощью Users API, однако страница nodejs отключена (здесь https://cloud.google.com/appengine/docs/standard/python/users/ ), похоже, нет никаких указаний на то, что там делать. Любые идеи?

Если нет прямого пути для решения этой проблемы, смогу ли я иметь среду движка приложения, которая также предоставляет, например, библиотеки Python для API пользователей, чтобы я мог обернуть их и использовать в своем приложении nodejs?


person Vee6    schedule 29.05.2019    source источник


Ответы (1)


Пользовательский API не поддерживается для Node.js. Вместо этого вы можете получить идентификатор из x-goog-iap-jwt-assertion header.

В настоящее время у нас нет образца кода для Node.js, хотя это кажется разумным подход. (Отказ от ответственности: я не являюсь пользователем Node и недостаточно знаю о библиотеках Node JWT, чтобы рекомендовать какую-либо из них в частности.)

person Matthew Sachs    schedule 29.05.2019
comment
да, идентичность содержится в заголовке утверждения jwt, как и в других заголовках x-goog, взятых отдельно. однако я думал, что личность пользователя будет больше, чем предоставленная там информация: адрес электронной почты, идентификатор и псевдоним. например, я искал, могу ли я распределить различные роли или принадлежности пользователя в группы. - person Vee6; 30.05.2019
comment
Ах, не сейчас. Сегодня вы можете использовать что-то вроде developers.google.com/admin-sdk/directory, чтобы проверить членство в группах изнутри вашего приложения. - person Matthew Sachs; 31.05.2019
comment
Да, я использовал это в какой-то момент при интеграции с учетной записью GSuite, я не помню четко, но я думаю, что у меня были некоторые проблемы с тем, чтобы сделать то же самое с GCP IAM. Кажется, что в учетных записях участников гораздо меньше информации, должны ли они быть доступны и с помощью GSuite admin sdk? - person Vee6; 03.06.2019