Получите доступ к API, защищенному Google IAP, с номера Angular - PullRequest
1 голос
/ 06 февраля 2020

Мое приложение имеет 2 модуля

  • Внутренний API пружинной загрузки
  • Angular интерфейс (приложение SPA)

Оба были развернут в Google App Engine (GAE) .

Я использовал Google IAP для аутентификации. После включения IAP есть ли способ сгенерировать токен IAP JWT для разных пользователей в организации для аутентификации API-интерфейсов с помощью веб-клиента.

Я пытался механизм генерации токенов с использованием Сервисной учетной записи . Но для моего сценария я просто хочу аутентифицировать и авторизовать пользователей , а не служебную учетную запись. Я нашел эту ссылку для включения доступа к веб-ресурсам для пользователей, но она использует авторизацию на основе cook ie. И это не рекомендуемый способ для приложения, такие как angular.

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Если вы используете IAP для защиты своего API бэкенда, это означает, что у ваших пользователей есть учетная запись Google или учетная запись, управляемая в Cloud Identity.

В вашем Angular front- В конце приложения вы можете получить токен JWT вашего пользователя с помощью Google Sign-In для веб-сайтов .

Чтобы легко интегрировать Google Sign-in с Angular, я рекомендую использовать ng-gapi из Рубен .

Основные строки рабочего процесса:

  • Angular использует ng-gapi с Google Sign-in позади scene
  • Пользователи проходят проверку подлинности с помощью своей учетной записи Google
  • Вы можете получить GoogleUser idToken, который является токеном JWT.
  • Каждый запрос HttpRequest может быть выполнен с помощью Authorization: Bearer JWT
  • IAP примет запрос.

Чтобы лучше понять, как использовать ng-gapi, посмотрите эту демонстрационную версию stackblitz , созданную создателем lib.

Я также предлагаю вам эти ресурсы:

Обратите внимание, что вам нужно использовать идентификатор клиента OAuth 2.0 , настроенный Identity-Aware Proxy для вашего приложения, и добавить правильный Авторизованный JavaScript источник .

0 голосов
/ 13 февраля 2020

Да, вы можете сгенерировать токен JWT, используя angular -oauth2-oid c.

Получить идентификатор клиента IAP Web App по умолчанию и секрет клиента. Используйте AuthConfig и перенаправьте на свою ссылку после ввода учетных данных; вы можете захватить токен после того, как он будет перенаправлен.

Эта ссылка содержит все подробности:

https://medium.com/@ishmeetsingh / google-auth -gration-with- angular -5- and- angular -oauth2-oid c -ed01b997e1df

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

Пожалуйста, дайте больше информации о том, как вы проходили аутентификацию с учетной записи службы.

Спасибо, Бхарат

...