У меня есть внутреннее приложение, чтобы пользователи могли войти в систему, используя учетные данные нашей компании 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 будет работать.