網域管理員可以透過多種控管機制,管理網域使用者可存取的功能和應用程式。本頁面將說明這些功能,以及這些功能對外部整合作業的影響或用途,以及相關的 API 要求。
管理未滿 18 歲使用者的第三方應用程式存取權
管理員必須在 Google 管理控制台中為未滿 18 歲的使用者設定第三方應用程式。如果管理員未設定應用程式,未滿 18 歲的使用者將無法透過 Google Workspace for Education 帳戶存取該應用程式。
開發人員為未滿 18 歲的 Google Workspace for Education 使用者建構應用程式時,無須採取任何行動。只有管理員可以在管理控制台 UI 中設定第三方應用程式,無法透過程式碼完成這項操作。
指定 Classroom 功能的自訂管理員角色
管理員可以在管理控制台中建立自訂管理員角色,允許Education Plus 授權的特定使用者或群組執行下列操作:
查看 Classroom 分析,瞭解作業完成情形、成績趨勢和 Classroom 採用率等資料。
臨時存取 Classroom 課程,不必指派固定共同授課老師。
本指南說明如何使用 Google API 在網域中設定這些功能。
自動化自訂角色指派程序
本指南將說明如何完成下列步驟,以便自動化自訂角色指派程序:
- 建立安全性群組,將可存取這些功能的使用者分組。
- 將成員新增至群組。
- 選取正確的權限,建立自訂管理員角色。
- 擷取機構單位 ID。
- 將自訂管理員角色套用至新建立的群組。
必要條件
- 請參閱快速入門指南,瞭解如何使用 JavaScript、Python 和 Java 等語言,設定及執行使用 Google API 的應用程式。
- 您必須先設定 Cloud Identity,才能使用本指南所述的任何 Cloud Identity API。這些 API 可用來建立群組,以便指派管理員權限。
- 如果您想為一群使用者 (而非個別使用者) 提供自訂角色存取權,請參閱「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 會針對群組會員的週期傳回錯誤。舉例來說,如果 group1
是 group2
的成員,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
詳細資料。針對應授予此角色的每項特權,新增 privilegeName
和 serviceId
。
Classroom 分析
您必須具備 EDU_ANALYTICS_DATA_ACCESS
特權,才能建立可存取 Analytics 資料的自訂角色,並將 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
方法,擷取 privilegeIds
和 serviceIds
的清單。
回應
回應會包含角色的新例項。
Classroom 分析
{
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
。
Classroom 分析
建議您在將自訂管理員角色指派給特定使用者或群組時,選取學生機構單位 和老師機構單位。這樣一來,具備自訂管理員權限的使用者就能存取機構單位的學生和課程層級資料。如果省略學生機構單位,指定使用者就無法存取學生資料。如果省略老師機構單位,指定使用者就無法存取班級層級資料。
臨時課程存取權
您可以允許具有自訂管理員角色的使用者存取特定機構單位的課程,藉此限制臨時課程存取權。如果限制機構單位的存取權,則指派自訂管理員角色的群組只能存取主要任課老師屬於該機構單位的課程。
指派自訂管理員角色
如要將自訂管理員角色指派給群組,請使用下列 POST 要求。如要瞭解角色指派限制,請參閱自訂角色和角色指派限制指南。
Directory API roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
指派給群組或個別使用者
如果要將權限指派給群組,請在要求主體的 assignedTo
欄位中加入 groupId
。groupId
是在「建立安全性群組」步驟中取得。如果要將特權指派給個別使用者,請在要求主體的 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>"
}
資源
如需更多資訊,請參閱: