Трехсторонний поток OAuth без клиентского JSON-файла

Я пытаюсь использовать библиотеку Google OAuth 2.0 Ruby для выполнения трехэтапного потока OAuth, при котором учетная запись службы, выполняющая облачную функцию GCP, запрашивает метод API Google Workspace Directory для получения списка групп для данного пользователя.

Я настроил необходимое делегирование всего домена для моего клиента OAuth в Google Workspace с помощью сфера.

Вот мой код:

      class Directory
  def initialize
    scope =  ['https://www.googleapis.com/auth/admin.directory.group.readonly']

    auth_client = Google::Auth.get_application_default(scope).dup
    auth_client.update!(sub: 'me@example.com')
    auth_client.fetch_access_token!

    @client = Google::Apis::AdminDirectoryV1::DirectoryService.new
    @client.authorization = auth_client
  end

  def list_groups
    @client.list_groups(user_key: 'me@example.com', domain: 'example.com')
  end
end

При тестировании облачной функции я получаю .

После нескольких часов чтения документов библиотеки я заметил, что все примеры передают ссылку на JSON-файл учетных данных клиента. Требуется ли это с библиотекой аутентификации Ruby Google? Я бы предпочел не генерировать и не управлять ключами для своей учетной записи службы, если это возможно.

Я знаю, что можно использовать клиент аутентификации Python без файла JSON учетных данных клиента, потому что это сделал коллега.

Любая помощь приветствуется.

0 ответов

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