【发布时间】:2018-07-04 12:32:16
【问题描述】:
据悉here 在 Gsuit 中有 6 个预先构建的管理员角色,我们可以为用户分配任何自定义角色
- 超级管理员
- 群组管理员
- 用户管理管理员
- 帮助台管理员
- 服务管理员
- 经销商管理员
我可以使用admin.directory.rolemanagement 获取任何 gsuit 帐户中的所有角色,响应项目包含所有 6 个角色的列表-
- _SEED_ADMIN_ROLE
- _GROUPS_ADMIN_ROLE
- _USER_MANAGEMENT_ADMIN_ROLE
- _HELP_DESK_ADMIN_ROLE
- _SERVICE_ADMIN_ROLE
- _PLAY_FOR_WORK_ADMIN_ROLE
以下是响应示例。
{
"kind": "admin#directory#roles",
"etag": "\"BHP2ZsIq1HPrqEG_xY7Tkngn4lU/aNSm49szAAWjtQ6SLWG_peDst5I\"",
"items": [
{
"kind": "admin#directory#role",
"etag": "\"BHP2ZsIq1HPrqEG_xY7Tkngn4lU/GNyl5JrVAyPUAIIlrwnibCSKClQ\"",
"roleId": "11870025812017153",
"roleName": "_SEED_ADMIN_ROLE",
"roleDescription": "Google Apps Administrator Seed Role",
"isSystemRole": true,
"isSuperAdminRole": true
},
{
...Role2
},
....
]
}
但我无法找到特定用户分配的角色
当我使用 G Suite Admin SDK 获取任何用户详细信息时 低于示例 json
{
"kind": "admin#directory#user",
"id": "1071482697096977",
"etag": "\"BHP2ZsIq1HPrqEG_xY7Tkngn4lU/xqnEb7WwzCINHQT7UJn28\"",
"primaryEmail": "xyz@demo.zxy.com",
"name": {},
"isAdmin": false,
"isDelegatedAdmin": false,,
"suspended": false,
"ipWhitelisted": false,
"emails": [
{
"address": "",
"primary": true
}
],
"nonEditableAliases": [""],
"customerId": "accounts customerId",
"orgUnitPath": "/",
"isMailboxSetup": true,
"isEnrolledIn2Sv": false,
"isEnforcedIn2Sv": false,
"includeInGlobalAddressList": true
}
有什么方法可以识别以上 6 个角色中的哪一个分配给用户,因为在 admin sdk API 中返回单个密钥 isAdmin。这 isAdmin 会是如果将任何类型的管理员角色分配给用户,则为 true。
【问题讨论】:
-
我认为你可以使用Members: list。如果您有
groupKey,您将能够列出所有具有相应角色的成员。检查此方法的response。想了解更多关于groupKey,可以参考Directory API: Groups。 -
^ 错误,成员仅与组相关。在这里,OP 询问如何确定 gsuite 用户分配给哪些角色
标签: google-admin-sdk google-workspace