Назад | Перейти на главную страницу

Программное управление группами и пользователями в G Suite через API

У меня есть сценарий, использующий gcloud инструмент для создания сервисных аккаунтов для проекта.

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

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

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

Каков процесс:

Я бы предпочел выполнять любые запросы API либо с помощью инструмента CLI (например, gcloud) или CURL. Если требуется клиентский SDK, я бы предпочел NodeJS.

Обновить

Чтобы прояснить то, что я тестировал до сих пор, после просмотра тонны устаревшей документации на портале разработчиков Google, я:

Во всей документации Google они советуют вам попробовать эти вещи с помощью API Explorer, которого больше не существует.

в каталог API На странице предварительных требований описана настройка API для консоли администратора. Описанные здесь параметры также не существуют.

TL: DR: Вам нужно работать с Directory API из G SUITE SDK

Получите необходимую информацию для аутентификации для отправки запросов в GSuite API.

На Directory API: страница предварительных требований мы можем прочитать шаги, которые вам нужно выполнить, чтобы Настройте свой API:

1 Включите доступ к API из консоли администратора, чтобы делать запросы к Directory API. Чтобы включить API, войдите в свою учетную запись администратора и выберите Безопасность. Если вы не видите Безопасность в списке, выберите Больше элементов управления а потом Безопасность из вариантов, показанных в сером поле. Выберите ссылку API, а затем установите флажок, чтобы Включить API доступ. Сохраните изменения.

2 Создайте новый проект в Консоль API Google и активируйте сервис Admin SDK для этого проекта

Предоставьте разрешения / области для всего, что требуется для получения вышеуказанного

На Directory API: запросы авторизации вы можете узнать больше о процессе Авторизация запросов с помощью OAuth 2.0 и необходимые вам прицелы. Поскольку вы хотите управлять только группами, вам необходимо добавить область «Области для групп, псевдонимов групп и членов группы». Вам необходимо добавить:

Объем: https://www.googleapis.com/auth/admin.directory.group

Смысл: Глобальная область доступа ко всем групповым операциям, включая псевдонимы и членов группы.

Фактически используйте эту авторизацию для создания группы / добавления пользователя в группу / и т. Д.

Поскольку вы будете взаимодействовать с API с помощью BASH, вам нужно будет выполнять запросы к API с помощью CURL. Итак, все примеры, которые я опубликую, используют CURL.

На Directory API: группы вы можете прочитать, какие операции вы можете выполнять, и как их выполнять.

Так, например, если вы хотите создать группу, вам потребуется выполнить операцию POST, чтобы "https://www.googleapis.com/admin/directory/v1/groups"с полезной нагрузкой JSON в следующем формате:

{
   "email": "sales_group@example.com",
   "name": "Sales Group",
   "description": "This is the Sales group."
}

Итак, команда CURL будет выглядеть так:

curl --request POST \
     --header "Content-Type: application/json" \
     --header "Authorization: Bearer <ACCESS TOKEN>" \
     --data '{"email":"sales_group@example.com","name":"Sales Group","description":"This is the Sales group."}' \     https://www.googleapis.com/admin/directory/v1/groups

Успешный ответ возвращает код состояния HTTP 201. Вместе с кодом состояния ответ возвращает свойства новой группы.

Если у вас возникли проблемы с получением токенов, вы можете узнать больше о том, как получить токены OAUTH 2.0:

https://stackoverflow.com/questions/28593022/list-google-drive-files-with-curl https://stackoverflow.com/questions/44063975/get-access-token-of-google-api https://developers.google.com/google-ads/api/docs/concepts/curl-example https://www.jhanley.com/google-oauth-2-0-testing-with-curl/