google-api - 如何从 Google API 获取分配给 G Suite 用户的自定义角色?
问题描述
我有一个内部应用程序,用户应该能够使用我们公司的 G Suite 凭据登录。我在 G Suite 中创建了几个自定义角色,我计划在应用程序中使用它们来确定他们可以在那里做什么。
我正在使用 Passport 进行 OAuth2 调用,我使用的范围如下:
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>
并获取用户分配给他们的角色列表。
问题是,如果我使用我的超级管理员用户,一切正常,但是当使用没有超级管理员权限的测试用户时,我会从 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 中创建的自定义角色的一些访问权限,但我不知道该怎么做。我尝试在角色管理员权限视图中勾选所有内容,但没有任何效果。只有当我授予我的测试帐户超级管理员权限时,才能调用 Google API。
解决方案
经过一番调查,显然不可能这样做。
由于某种原因,即使经过身份验证,用户也无法获得他/她自己的自定义角色。因此,我必须创建一个服务帐户并让该帐户模拟具有管理员权限的用户来获取角色分配。
推荐阅读
- python - Pandas:如何对多级 DataFrame 中的子级求和最大的 3 个值
- html - GoogleDoc:导入HTML
- javascript - 根据JS中的索引从数组内部删除数组
- javascript - Jest 模拟了间谍功能,在测试中没有被调用
- kubernetes - 指定动态创建的 EBS 卷名称
- javascript - 在 V8 中扩展 JavaScript 数组并维护 PACKED 类型
- vba - 如何获取树中选定零件的“实例名称”
- permissions - 在允许创建文件但不允许创建文件夹的 Google Drive 文件夹上设置权限?
- outlook - 房间的 Outlook 日历活动
- batch-file - 接受用户输入后脚本未运行第二个函数