Как я могу получить доступ к ресурсу, защищенному IAP, с помощью Python?

Как я могу получить доступ к ресурсу, защищенному IAP, с помощью Python? В частности, я хотел бы сгенерировать токен Bearer, необходимый в заголовке Authorization, чтобы выполнять вызовы ресурса, защищенного IAP.

Я создал учетную запись службы, предоставив ей разрешения «Пользователь веб-приложения с защитой IAP», и загрузил ее учетные данные JSON на диск.


person Ztyx    schedule 12.02.2018    source источник


Ответы (1)


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

Шаги по получению и использованию токена для аутентификации показаны здесь, но вот небольшое резюме:

  • Перейдите на страницу Cloud IAP в консоли и отредактируйте клиент OAuth для ресурса, к которому вы хотите получить доступ.
  • Используя идентификатор клиента, полученный на странице учетных данных, запросите токен OIDC.
  • Включите токен OIDC в ​​заголовок Authorization: Bearer, и тогда у вас будет аутентифицированный запрос к ресурсу, защищенному IAP.
person Rodrigo C.    schedule 16.02.2018
comment
Спасибо, Родриго. Не могли бы вы предоставить мне образец кода Python? Я сам пытался заставить это работать, но не смог. - person Ztyx; 16.02.2018
comment
По этой ссылке есть несколько примеров, которые можно скопировать. репозиторий на локальный компьютер: git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git. Перейдите в каталог iap и следуйте инструкциям, указанным в ссылке выше. Если вам нужен более конкретный код, вы можете попробовать это один - person Rodrigo C.; 16.02.2018
comment
Я просмотрел github.com/GoogleCloudPlatform / python-docs-samples / blob / master / ранее. В моем случае у меня есть загруженные учетные данные JSON. Вы случайно не знаете, какие изменения мне нужно внести, чтобы внести github.com/GoogleCloudPlatform/python-docs-samples/blob/master/ работать с файлом JSON? API довольно запутан для новичка ... - person Ztyx; 16.02.2018
comment
См. gist.github.com/JensRantil/a3cc32c80c3594844009c55ff9233591. Дайте мне знать, если у вас есть какие-либо предложения. - person Ztyx; 16.02.2018
comment
Поскольку вы используете учетные данные JSON, я понимаю, что вам требуется веб-токен JSON (JWT). По этой ссылке вы можете найти все шаги по защите вашего приложение. Имейте в виду, что это действительно для приложений в гибкой среде. Для стандартной среды вам придется использовать подход, указанный [здесь] (облако .google.com / iap / docs / identity-howto # get_identity_gae), что предполагает использование API пользователей. - person Rodrigo C.; 16.02.2018