管理员操作

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

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

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

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

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

管理员可以在管理控制台中创建自定义管理员角色,以允许具有教育 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 的成员。

如需向群组添加成员,请使用以下 POST 请求来调用 Directory API members.insert 方法:

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 提供的预建角色更精细地限制管理员访问权限。您可以为用户或安全群组分配角色。如需详细了解角色创建方面的限制,请参阅自定义角色和角色分配限制

如需创建新角色,请使用以下 POST 请求调用 Directory API 的 roles.insert 方法:

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 参数来检索用户的 ID,也可以通过调用 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>"
}

资源

如需了解详情,请访问: