Quản trị viên có thể tạo vai trò quản trị viên tuỳ chỉnh trong Bảng điều khiển dành cho quản trị viên để cho phép một số cá nhân hoặc nhóm có giấy phép Education Plus:
Xem số liệu phân tích của Lớp học để hiểu các dữ liệu như số lượng bài tập hoàn thành, xu hướng điểm và mức sử dụng Lớp học.
Tạm thời truy cập vào các lớp học trong Lớp học để hỗ trợ nhà giáo dục, đăng thông báo và làm nhiều việc khác mà không cần được chỉ định làm người cùng dạy thường xuyên.
Hướng dẫn này giải thích cách thiết lập những tính năng này trong miền của bạn bằng API Google.
Tự động hoá quy trình chỉ định vai trò tuỳ chỉnh
Cách tự động hoá quy trình chỉ định vai trò tuỳ chỉnh:
- Tạo nhóm bảo mật để sắp xếp những người dùng có thể sử dụng các tính năng này.
- Thêm thành viên vào nhóm.
- Tạo vai trò quản trị viên tuỳ chỉnh bằng cách chọn đặc quyền chính xác.
- Truy xuất mã đơn vị tổ chức.
- Áp dụng vai trò quản trị viên tuỳ chỉnh cho các nhóm mới tạo.
Điều kiện tiên quyết
- Hãy đọc Hướng dẫn nhanh để hiểu cách thiết lập và chạy một ứng dụng bằng API của Google bằng các ngôn ngữ như JavaScript, Python và Java.
- Đọc phần Tổng quan về API Groups.
- Trước khi sử dụng bất kỳ API Cloud Identity nào được mô tả trong hướng dẫn này, bạn phải thiết lập Cloud Identity. Các API này được dùng để tạo nhóm nhằm chỉ định đặc quyền của quản trị viên.
- Thiết lập Groups API.
Tạo nhóm bảo mật
Tạo một nhóm bảo mật bằng phương thức groups.create
. Bạn có thể đặt một nhóm làm nhóm bảo mật khi nhãn bảo mật có trong trường labels
của yêu cầu. Để biết thêm thông tin và các hạn chế khi tạo nhóm bảo mật, hãy tham khảo hướng dẫn tạo nhóm bảo mật.
POST https://cloudidentity.googleapis.com/v1/groups
Bạn có thể tuỳ ý đưa tham số truy vấn InitialGroupConfig
vào để khởi chạy chủ sở hữu nhóm:
POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}
Tài khoản đưa ra yêu cầu này cần một trong các phạm vi sau:
https://www.googleapis.com/auth/cloud-identity.groups
https://www.googleapis.com/auth/cloud-identity
https://www.googleapis.com/auth/cloud-platform
Nội dung yêu cầu
Nội dung yêu cầu chứa thông tin chi tiết về nhóm sẽ được tạo. customerId
phải bắt đầu bằng "C" (ví dụ: C046psxkn
). Tìm mã khách hàng của bạn.
{
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": ""
}
}
Phản hồi
Phản hồi này chứa một thực thể mới của tài nguyên 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": ""
}
}
}
Thêm thành viên nhóm
Sau khi bạn tạo nhóm, bước tiếp theo là thêm thành viên. Thành viên nhóm có thể là người dùng hoặc một nhóm bảo mật khác. Nếu bạn thêm một nhóm làm thành viên của một nhóm khác, thì thời gian hiển thị thành viên có thể mất tới 10 phút. Ngoài ra, API này sẽ trả về lỗi cho các chu kỳ trong gói thành viên nhóm. Ví dụ: nếu group1
là thành viên của group2
, thì group2
không thể là thành viên của group1
.
Để thêm thành viên vào một nhóm, hãy sử dụng yêu cầu POST sau.
API thư mục members.insert
:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
Tham số đường dẫn groupKey
là địa chỉ email nhóm của thành viên mới hoặc mã nhận dạng duy nhất của nhóm.
Tài khoản thực hiện yêu cầu POST cần phải có một trong các phạm vi sau:
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
Nội dung yêu cầu
Nội dung yêu cầu chứa thông tin chi tiết về member
sẽ được tạo.
{
email: "person_one@example.com",
role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}
Phản hồi
Phản hồi này chứa thực thể mới của thành viên.
{
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"
}
Bạn cần thực hiện yêu cầu này cho mọi người dùng mà bạn muốn thêm làm thành viên. Bạn có thể nhóm các yêu cầu này để giảm số lượng kết nối HTTP mà ứng dụng của bạn phải thực hiện.
Tạo vai trò quản trị viên tuỳ chỉnh có đặc quyền
API Thư mục cho phép bạn dùng chế độ kiểm soát quyền truy cập dựa trên vai trò (RBAC) để quản lý quyền truy cập vào các tính năng trong miền Google Workspace của bạn. Bạn có thể tạo các vai trò tuỳ chỉnh bằng các đặc quyền để giới hạn quyền truy cập của quản trị viên, cụ thể hơn là những vai trò tạo sẵn mà Google Workspace cung cấp. Bạn có thể chỉ định vai trò cho người dùng hoặc nhóm bảo mật. Để biết thêm thông tin chi tiết về các giới hạn của việc tạo vai trò, hãy tham khảo các giới hạn chỉ định vai trò và vai trò tuỳ chỉnh.
Để tạo vai trò mới, hãy sử dụng yêu cầu POST sau.
API thư mục roles.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
customerId
giống với mã sử dụng trong bước 1 của hướng dẫn này.
Tài khoản thực hiện yêu cầu POST cần có phạm vi sau:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Nội dung yêu cầu
Nội dung yêu cầu chứa thông tin chi tiết về role
sẽ được tạo. Thêm privilegeName
và serviceId
cho mỗi đặc quyền sẽ được cấp vai trò này.
Số liệu phân tích của Lớp học
Bạn cần có đặc quyền EDU_ANALYTICS_DATA_ACCESS
để tạo vai trò tuỳ chỉnh có thể truy cập vào dữ liệu phân tích, cùng với serviceId
được đặt thành 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
Quyền truy cập tạm thời vào lớp học
Bạn cần có đặc quyền ADMIN_OVERSIGHT_MANAGE_CLASSES
để tạo vai trò tuỳ chỉnh có thể truy cập tạm thời vào các lớp, cùng với serviceId
được đặt thành 019c6y1840fzfkt
.
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to manage classes privilege", // customize as needed
rolePrivileges: [
{
privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
serviceId: "019c6y1840fzfkt"
}
]
}
Gọi phương thức privileges.list
để truy xuất danh sách privilegeIds
và serviceIds
.
Phản hồi
Phản hồi này chứa thực thể mới của vai trò.
Số liệu phân tích của Lớp học
{
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
}
Quyền truy cập tạm thời vào lớp học
{
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
}
Truy xuất mã đơn vị tổ chức
Bạn có thể giới hạn quyền truy cập của vai trò quản trị viên tuỳ chỉnh cho một hoặc nhiều đơn vị tổ chức bằng cách sử dụng mã đơn vị tổ chức. Sử dụng API OrgUnit để truy xuất orgUnitId
.
Số liệu phân tích của Lớp học
Bạn nên chọn một đơn vị tổ chức học viên và đơn vị tổ chức của giáo viên khi chỉ định vai trò quản trị viên tuỳ chỉnh cho một người dùng hoặc nhóm cụ thể. Khi làm như vậy, những người dùng được chỉ định có đặc quyền quản trị viên tuỳ chỉnh sẽ truy cập vào dữ liệu cấp học viên và dữ liệu cấp lớp cho các đơn vị tổ chức. Nếu đơn vị tổ chức của học viên bị bỏ qua, thì những người dùng được chỉ định sẽ không có quyền truy cập vào dữ liệu của học viên. Nếu bạn bỏ qua đơn vị tổ chức của giáo viên, thì người dùng được chỉ định sẽ không có quyền truy cập vào dữ liệu ở cấp lớp.
Quyền truy cập tạm thời vào lớp học
Bạn có thể giới hạn đặc quyền tạm thời đối với lớp học bằng cách cho phép người dùng có vai trò quản trị viên tuỳ chỉnh truy cập vào các lớp trong những đơn vị tổ chức cụ thể. Nếu hạn chế quyền truy cập vào một đơn vị tổ chức, thì nhóm được chỉ định vai trò quản trị viên tuỳ chỉnh chỉ có thể truy cập vào các lớp mà giáo viên chính của lớp thuộc đơn vị tổ chức đó.
Chỉ định vai trò quản trị viên tuỳ chỉnh
Để chỉ định vai trò quản trị viên tuỳ chỉnh cho một nhóm, hãy sử dụng yêu cầu POST sau. Hãy tham khảo hướng dẫn về các giới hạn đối với việc chỉ định vai trò và vai trò tuỳ chỉnh để biết các giới hạn về việc chỉ định vai trò.
API thư mục roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
Chỉ định cho một nhóm hoặc người dùng cá nhân
Nếu chỉ định đặc quyền cho một nhóm, hãy thêm groupId
vào trường assignedTo
trong nội dung yêu cầu. groupId
này được lấy trong bước Tạo nhóm bảo mật. Nếu chỉ định đặc quyền cho một người dùng cá nhân, hãy đưa mã nhận dạng của người dùng đó vào trường assignedTo
trong nội dung yêu cầu. Bạn có thể truy xuất mã nhận dạng người dùng bằng cách gọi users.get
và chỉ định địa chỉ email của người dùng làm tham số userKey
hoặc bằng cách gọi users.list
.
Tài khoản thực hiện yêu cầu POST cần có phạm vi sau:
https://www.googleapis.com/auth/admin.directory.rolemanagement
Nội dung yêu cầu
Phần nội dung yêu cầu chứa thông tin chi tiết về RoleAssignment
sẽ được tạo. Bạn phải đưa ra một yêu cầu cho mỗi đơn vị tổ chức mà bạn muốn liên kết với nhóm này.
{
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
}
Phản hồi
Phản hồi này chứa thực thể mới của 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>"
}
Tài nguyên
Bạn có thể xem thêm thông tin tại:
- Tổng quan về API Thư mục
- Xác thực và uỷ quyền dành riêng cho API Thư mục
- Tài liệu REST API thư mục
- Hỗ trợ nhà phát triển API SDK quản trị