很好的文档here在Gsuit中有6个预建管理员角色,我们可以为用户分配任何自定义角色
我可以使用admin.directory.rolemanagement获取任何gsuit帐户中的所有角色,响应项目包含所有6个角色的列表 -
以下是样本回复。
{
"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。
答案 0 :(得分:1)
您可以使用此API列出已分配了特定角色(通过传递角色ID)和特定域(客户ID)的所有用户。
用户密钥有一个可选的查询参数,如果通过该参数,它将帮助您了解是否已为该特定用户分配了该角色。
它适用于所有委派的管理员,我想这就是您所需要的,因为无论如何,超级管理员(isAdmin)都可以访问该特定角色。
P.S我知道对于提出这个问题的人来说可能为时已晚,但是任何需要弄清楚这个问题的人,这个答案都适合您。