Каковы разрешения для получения admin_view в ответ на REST API: https://www.googleapis.com/admin/directory/v1/users?viewType=admin_view' - PullRequest
0 голосов
/ 24 августа 2018

При использовании Google Admin SDK REST API (получение списка пользователей в домене): https://www.googleapis.com/admin/directory/v1/users?domain=', Я всегда сталкивался с 403 (ошибка не авторизована). «код»: 403, "message": "Нет прав доступа к этому ресурсу / api"

Однако, если я изменю значение только для одного из параметров запроса, а именно viewType, на 'domain_public' с 'admin_view', это будет успешно выполнено. Таким образом, это означает, что учетная запись, которую я использую для вызова этого запроса, не имеет необходимых привилегий для 'admin_view'.

Я использую учетную запись G-suite для выполнения API REST, и у него нет привилегий SUPER ADMIN. Опять же, из соображений безопасности я не хочу назначать этому пользователю неограниченные привилегии.

Итак, у меня есть два указанных запроса:

  1. Каким может быть точный набор разрешений для получения 'admin_view' для вышеуказанного REST API?
  2. Вместо использования учетной записи пользователя G-Suite, как насчет создания учетной записи службы, связанной с настраиваемой / готовой ролью, включающей все необходимые разрешения, и использования этой учетной записи службы для запуска запроса REST API ? Это будет работать ? Я чувствую, что это более безопасный и более подходящий способ «теоретически»?

1 Ответ

0 голосов
/ 25 августа 2018

Я считаю, что проблема в том, что используемая учетная запись не является администратором домена и поэтому не может получить доступ к API-интерфейсу администратора View Directory.

Чтобы решить эту проблему, добавьте делегировать полномочия на уровне домена вашей учетной записи службы , а затем, перед следующим примечанием

Только пользователи с доступом к API администратора могут получить доступ к администратору. API каталога SDK, поэтому ваша учетная запись службы должна олицетворять один из этих пользователей для доступа к API Admin SDK Directory. Кроме того, пользователь должен войти хотя бы один раз и принять Условия использования G Suite.

выдавать себя за администратора домена, когда вы делаете запрос:

$cred = new Google_Auth_AssertionCredentials(
    $service_account_name,
    $authArray,
    $key
);
$cred->sub = "admin@yourdomain.com";
...