Cloud IAP и трехсторонний OAuth

Предполагая следующий сценарий:

User <> Cloud IAP <> App Engine App <> Google APIs

Как App Engine App может получить доступ к Google APIs от имени аутентифицированного пользователя? (т. е. без использования учетной записи службы приложения App Engine)

Cloud IAP передает токен JWT на App Engine App, но я не мог использовать его для доступа к ресурсам Google APIs (например, к профилю пользователя).

Я не смог найти соответствующей документации для этого сценария.

Socialite Login With Google Account In Laravel 9
Socialite Login With Google Account In Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com.
0
0
84
1

Ответы 1

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

Чтобы приложения могли действовать от имени пользователей, приложению необходимо выполнить поток веб-сервера OAuth2.0. Обычно вы будете использовать предоставленную Google библиотеку oauth2 для выполнения этого потока (питон, Джава, так далее), а затем передать эти учетные данные в клиентскую библиотеку, которую вы используете для фактического вызова API.

Означает ли это, что будет сделано как минимум два пользовательских запроса OAuth: 1 - для IAP, чтобы предоставить управляющий доступ к приложению 2 - а затем еще один пользовательский запрос на разрешения уровня приложения (например, доступ к Bigquery, хранилищу и т. д.)

Jan Krynauw 08.06.2020 16:27

Верный. Упомянутый вами IAP JWT является утверждением, подписанным IAP, что запрос пришел от данного пользователя. Это не учетные данные, которые можно использовать для запросов.

David 09.06.2020 00:13

Другие вопросы по теме