【问题标题】:Gsuit admin sdk how to find what role a particular user assignedG Suite admin sdk 如何查找特定用户分配的角色
【发布时间】: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


【解决方案1】:

https://developers.google.com/admin-sdk/directory/v1/reference/roleAssignments/list?apix_params=%7B%22customer%22%3A%22C00rz37xc%22%2C%22roleId%22%3A%2241816136601305092%22%7D

您可以使用此 API 列出已分配特定角色(通过传递角色 ID)和特定域(客户 ID)的所有用户。

用户键有一个可选的查询参数,如果传递,将帮助您了解该特定用户是否已被分配该角色。

它适用于所有委派的管理员,我想这就是您所需要的,因为超级管理员 (isAdmin) 无论如何都可以访问该特定角色。

P.S 我知道对于提出这个问题的人来说可能为时已晚,但任何需要这个问题的人都需要弄清楚,这个答案适合你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多