管理员操作

网域管理员可以通过多种控制方式来管理其网域中的用户可以访问的功能和应用。本页介绍了这些功能,它们可能会对外部集成产生的影响或对外部集成有何用处,以及相关的 API 请求。

管理未满 18 周岁的用户对第三方应用的访问权限

管理员必须在 Google 管理控制台中为未满 18 周岁的用户 配置第三方应用。如果管理员未配置应用,未满 18 周岁的用户将无法通过其 Google Workspace 教育版账号访问该应用。

为未满 18 周岁的 Google Workspace 教育版用户构建应用时,开发者无需执行任何操作。配置第三方应用只能由管理员在管理控制台界面中完成,无法以编程方式完成。

为 Google 课堂功能指定自定义管理员角色

管理员可以在 管理控制台中创建自定义管理员角色,以便为拥有 Google Workspace 教育标准版或 Plus 版的特定个人或群组授予以下权限:

本指南介绍了如何使用 Google API 在您的网域中设置这些功能。

自动执行自定义角色分配流程

本指南将介绍如何完成以下步骤,以自动执行自定义角色分配流程:

  1. 创建安全群组,以组织可以访问这些功能的用户。
  2. 向群组添加成员。
  3. 通过选择正确的权限来创建自定义管理员角色。
  4. 检索组织部门 ID。
  5. 将自定义管理员角色应用于新创建的群组。

前提条件

  1. 阅读快速入门指南,了解如何使用 JavaScript、Python 和 Java 等语言通过 Google API 设置和运行应用。
  2. 在使用本指南中介绍的任何 Cloud Identity API 之前,您必须 设置 Cloud Identity。这些 API 用于创建群组以分配管理员权限。
  3. 如果您希望为用户群组(而不是单个用户)提供自定义角色访问权限,请阅读 Groups API 概览设置 Groups API

创建安全群组

使用 groups.create 方法创建安全群组。当请求的 labels 字段中包含安全标签时,可以将群组设置为安全群组。如需详细了解创建安全群组的相关信息和限制, 请参阅创建安全群组指南。

POST https://cloudidentity.googleapis.com/v1/groups

(可选)您可以添加 InitialGroupConfig 查询参数来 初始化群组所有者:

POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}

发出此请求的账号需要以下范围之一:

  • https://www.googleapis.com/auth/cloud-identity.groups
  • https://www.googleapis.com/auth/cloud-identity
  • https://www.googleapis.com/auth/cloud-platform

请求正文

请求正文包含要创建的群组的详细信息。customerId 必须以“C”开头(例如 C046psxkn)。查找您的客户 ID

{
   parent: "customers/<customer-id>",
   description: "This is the leadership group of school A.",
   displayName: "Leadership School A",
   groupKey: {
      id: "leadership_school_a@example.com"
   },
   labels: {
      "cloudidentity.googleapis.com/groups.security": "",
      "cloudidentity.googleapis.com/groups.discussion_forum": ""
   }
}

响应

响应包含 Operation 资源的新实例。

{
   done: true,
   response: {
      @type: "type.googleapis.com/google.apps.cloudidentity.groups.v1.Group",
      name: "groups/<group-id>", // unique group ID
      groupKey: {
         id: "leadership_school_a@example.com" // group email address
      },
      parent: "customers/<customer-id>",
      displayName: "Leadership School A",
      description: "This is the leadership group of school A.",
      createTime: "<created time>",
      updateTime: "<updated time>",
      labels: {
         "cloudidentity.googleapis.com/groups.security": "",
         "cloudidentity.googleapis.com/groups.discussion_forum": ""
      }
   }
}

添加群组成员

创建群组后,下一步是添加成员。群组成员可以是用户或其他安全群组。如果您将群组添加为另一个群组的成员,成员资格可能需要长达 10 分钟才能传播完毕。此外,如果群组成员资格存在循环,API 会返回错误。例如,如果 group1group2 的成员,则 group2 不能是 group1 的成员。

如需向群组添加成员,请向 Directory API members.insert 方法发出以下 POST 请求:

POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members

groupKey 路径参数是新成员的群组电子邮件地址或 群组的唯一 ID。

发出 POST 请求的账号需要以下范围之一:

  • https://apps-apis.google.com/a/feeds/groups/
  • https://www.googleapis.com/auth/admin.directory.group
  • https://www.googleapis.com/auth/admin.directory.group.member

请求正文

请求正文包含要创建的 member 的详细信息。

{
   email: "person_one@example.com",
   role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}

响应

响应包含成员的新实例。

{
   kind: "admin#directory#member",
   etag: "<etag-value>", // role's unique ETag
   id: "4567", // group member's unique ID
   email: "person_one@example.com",
   role: "MEMBER",
   type: "GROUP",
   status: "ACTIVE"
}

您需要为要添加为成员的每个用户发出此请求。 您可以批量处理这些请求,以减少客户端必须建立的 HTTP 连接数量。

创建具有特权的自定义管理员角色

借助 Directory API,您可以使用基于角色的访问权限控制 (RBAC) 来管理对 Google Workspace 网域中功能的访问权限。您可以创建具有特权的自定义角色,以便比 Google Workspace 提供的预构建角色更具体地限制管理员访问权限。您可以为用户或安全群组分配角色。如需详细了解创建角色的限制 ,请参阅自定义角色和角色分配限制

如需创建新角色,请向 Directory API roles.insert 方法发出以下 POST 请求:

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles

customerId 与本指南第 步 1 中使用的相同。

发出 POST 请求的账号需要以下范围:

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

请求正文

请求正文包含要创建的 role 的详细信息。为应通过此角色授予的每个权限添加 privilegeNameserviceId

Google 课堂分析

如需创建可以访问分析数据的自定义角色,您需要拥有 EDU_ANALYTICS_DATA_ACCESS 权限,并将 serviceId 设置为 019c6y1840fzfkt

{
  roleName: "Education Admin", // customize as needed
  roleDescription: "Access to view analytics data", // customize as needed
  rolePrivileges: [
     {
        privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
        serviceId: "019c6y1840fzfkt"
     }
  ]
}

临时课程访问权限

如需创建可以临时访问课程的自定义角色,您需要拥有 ADMIN_OVERSIGHT_MANAGE_CLASSES 权限,并将 serviceId 设置为 019c6y1840fzfkt

{
  roleName: "Education Admin", // customize as needed
  roleDescription: "Access to manage classes privilege", // customize as needed
  rolePrivileges: [
     {
        privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
        serviceId: "019c6y1840fzfkt"
     }
  ]
}

调用 privileges.list 方法以检索 privilegeIdsserviceIds 的列表。

响应

响应包含角色的新实例。

Google 课堂分析

{
  kind: "admin#directory#role",
  etag: "<etag-value>",  // role's unique ETag
  roleId: "<role-id>",   // role's unique ID
  roleName: "Education Admin",
  roleDescription: "Access to view analytics data",
  rolePrivileges: [
     {
        privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
        serviceId: "019c6y1840fzfkt"
     }
  ],
  isSystemRole: false,
  isSuperAdminRole: false
}

临时课程访问权限

{
  kind: "admin#directory#role",
  etag: "<etag-value>",  // role's unique ETag
  roleId: "<role-id>",   // role's unique ID
  roleName: "Education Admin",
  roleDescription: "Access to manage classes privilege",
  rolePrivileges: [
     {
        privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
        serviceId: "019c6y1840fzfkt"
     }
  ],
  isSystemRole: false,
  isSuperAdminRole: false
}

检索组织部门 ID

您可以使用组织部门 ID 将自定义管理员角色的访问权限限制为一个或多个组织部门。使用 OrgUnit API 检索 orgUnitId

Google 课堂分析

建议您在为特定用户或群组分配自定义管理员角色时,选择学生组织部门和教师组织部门。 这样,被指定拥有自定义管理员权限的用户就可以访问组织部门的学生和课程级数据。如果省略学生组织部门,指定用户将无法访问学生数据。如果省略教师组织部门,指定用户将无法访问课程级数据。

临时课程访问权限

您可以限制临时课程访问权限,方法是允许拥有自定义管理员角色的用户访问特定组织部门中的课程。如果限制对组织部门的访问权限,则分配有自定义管理员角色的群组只能访问主讲教师在该组织部门中的课程。

分配自定义管理员角色

如需为群组分配自定义管理员角色,请使用以下 POST 请求。如需了解 角色分配限制,请参阅自定义角色和角色分配限制指南。

Directory API roleAssignments.insert

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments

分配给群组或单个用户

如果要将权限分配给群组,请在请求正文的 assignedTo 字段中添加 groupIdgroupId 是在 创建安全 群组 步骤中获得的。如果要将权限分配给单个用户,请在请求正文的 assignedTo 字段中添加用户的 ID。您可以通过调用 users.get 并将 用户的电子邮件地址指定为 userKey 参数,或通过调用 users.list 来检索用户的 ID。

发出 POST 请求的账号需要以下范围:

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

请求正文

请求正文包含要创建的 RoleAssignment 的详细信息。您必须为要与此群组关联的每个组织部门发出一个请求。

{
   roleId: "<role-id>",        // role's unique ID obtained from Step 3
   assignedTo: "<id>",         // group ID or user ID
   scopeType: "ORG_UNIT",      // can be `ORG_UNIT` or `CUSTOMER`
   orgUnitId: "<org-unit-id>"  // organizational unit ID referenced in Step 4
}

响应

响应包含 RoleAssignment 的新实例。

{
   kind: "admin#directory#roleAssignment",
   etag: "<etag-value>",
   roleAssignmentId: "<role-assignment-id>",
   roleId: "<role-id>",
   assignedTo: "<group-id or user-id>",
   assigneeType: "GROUP",
   scopeType: "ORG_UNIT",
   orgUnitId: "<org-unit-id>"
}

资源

如需了解更多信息,请访问以下网址: