Как я могу получить назначенные пользовательские роли пользователя G Suite из Google API? - PullRequest
0 голосов
/ 15 января 2020

У меня есть внутреннее приложение, чтобы пользователи могли войти в систему, используя учетные данные нашей компании G Suite. Я сделал несколько пользовательских ролей в G Suite, которые я планирую использовать в приложении, чтобы определить, что они могут там делать.

Я использую Passport для выполнения вызовов OAuth2 и объема, который я ' m использует следующее:

scope: [
  'email',
  'https://www.googleapis.com/auth/userinfo.profile',
  'https://www.googleapis.com/auth/admin.directory.rolemanagement.readonly'
]

Последний в списке дает мне доступ к списку всех ролей вошедшего в систему пользователя в моем приложении.

Затем я звоню https://www.googleapis.com/admin/directory/v1/customer/<MY_CUSTOMER_ID>/roleassignments?userKey=<MY_USER_ID> и получите список ролей, которые ему назначил пользователь.

Проблема в том, что, если я использую своего пользователя Super Admin, все отлично работает, но при использовании тестового пользователя, который не имеет привилегий супер администратора Я получаю следующее от Google API:

{
  errors: [
    {
      domain: 'global',
      reason: 'forbidden',
      message: 'Not Authorized to access this resource/api'
    }
  ],
  code: 403,
  message: 'Not Authorized to access this resource/api'
}

Я почти уверен, что мне нужно предоставить доступ к пользовательской роли, созданной в G Suite, но я не могу понять, как это сделать. Я пытался пометить все галочки в представлении Role Admin Privileges, но ничего не работает. Только если я предоставлю своему тестовому аккаунту привилегии Super Admin, вызов Google API будет работать.

1 Ответ

1 голос
/ 16 января 2020

После небольшого исследования, по-видимому, невозможно сделать это так.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...