Аутентификация в GCP с использованием учетной записи Google, без запуска браузера - PullRequest
0 голосов
/ 15 марта 2020

TL; DR

Кто-нибудь может предложить способ запуска тестов от имени пользователя, который не является учетной записью службы в конвейере CI?

Подробно:

Мы предоставляем приложение, работающее на GCP, все заинтересованные стороны которого являются пользователями нашей организации. Идентификационные данные этих пользователей контролируются в нашей локальной реализации ADFS и синхронизируются с GCP, чтобы их можно было использовать для аутентификации. Мы разрешаем доступ к различным частям приложения с помощью групп ADFS, в которые можно добавить эти удостоверения, и снова мы синхронизируем c членство в этих группах с GCP. Группы доступны как Группы Google (https://groups.google.com). Во время выполнения мы проверяем, является ли аутентифицированный пользователь членом данной группы. Все это прекрасно работает.

Я хотел бы запустить тесты в нашем конвейере CI, которые гарантируют, что аутентифицированный пользователь может делать то, что ему разрешено, и не может делать то, что ему не разрешено делать. Вот некоторые из тестов, которые я хотел бы выполнить:
* Убедитесь, что gsutil ls allowed-bucket возвращает ожидаемый список больших двоичных объектов
* Убедитесь, что gsutil ls non-allowed-bucket не может получить доступ к именованному сегменту
* Убедитесь, что облачная функция может быть вызвана через gcloud functions call function-name

Таким образом, мне нужно программно (т.е. без вмешательства человека) пройти аутентификацию пользователя, который является членом данной группы Google. У меня есть две возможности:

  • Использование служебной учетной записи и аутентификация с использованием gcloud auth activate-service-account --key-file /path/to/keyfile.json, но я не могу найти способ добавить служебную учетную запись в соответствующую группу Google - так эта опция не будет работать
  • Подготовка непривилегированного пользователя в нашей локальной ADFS, который мы затем добавим в соответствующую группу Google. К сожалению, я не думаю, что есть способ аутентификации этого пользователя без участия человека, потому что gcloud auth login использует веб-процесс авторизации. Если это требует вмешательства человека, я не могу использовать его в конвейере CI.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...