يمكن للمشرفين إنشاء أدوار مخصّصة للمشرفين في "وحدة تحكّم المشرف" للسماح لأفراد أو مجموعات معيّنة لديهم ترخيص Education Plus بما يلي:
عرض إحصاءات Classroom لفهم بيانات مثل نسبة إكمال المهام الدراسية والمؤشرات المتعلّقة بالدرجات واستخدام Classroom
الوصول مؤقتًا إلى الصفوف في Classroom لدعم المعلّمين ونشر الإشعارات وغير ذلك، بدون إضافتك كمعلّم مساعد دائم
يوضّح هذا الدليل كيفية إعداد هذه الميزات في نطاقك باستخدام واجهات برمجة تطبيقات Google.
التشغيل الآلي لعملية منح الأدوار المخصّصة
لإجراء عملية إسناد الأدوار المخصّصة بشكل آلي:
- أنشئ مجموعات أمان لتنظيم المستخدمين الذين يمكنهم الوصول إلى هذه الميزات.
- أضِف أعضاءً إلى المجموعات.
- أنشئ دور مشرف مخصّصًا من خلال اختيار الامتياز الصحيح.
- استرداد أرقام تعريف الوحدات التنظيمية:
- طبِّق دور المشرف المخصّص على المجموعات التي تم إنشاؤها حديثًا.
المتطلبات الأساسية
- اطّلِع على أدلة البدء السريع للتعرّف على كيفية إعداد تطبيق وتشغيله باستخدام واجهات برمجة تطبيقات Google بلغات مثل JavaScript وPython و Java.
- اطّلِع على نظرة عامة على واجهة برمجة تطبيقات "مجموعات Google".
- قبل استخدام أيّ من واجهات برمجة تطبيقات Cloud Identity الموضّحة في هذا الدليل، عليك إعداد Cloud Identity. تُستخدَم واجهات برمجة التطبيقات هذه لإنشاء مجموعات لمنح امتيازات المشرف.
- إعداد واجهة برمجة تطبيقات 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
).
ابحث عن معرّف العميل.
{
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 دقائق لكي تتم معالجة الاشتراك. بالإضافة إلى ذلك، تعرض واجهة برمجة التطبيقات رسالة خطأ في ما يتعلّق بالدورات في عضويات
المجموعات. على سبيل المثال، إذا كان group1
عضوًا في group2
، لا يمكن لـ group2
أن يكون عضوًا في group1
.
لإضافة عضو إلى مجموعة، استخدِم طلب POST التالي.
Directory API members.insert
:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
مَعلمة المسار groupKey
هي عنوان البريد الإلكتروني
للعضو الجديد في المجموعة أو المعرّف الفريد للمجموعة.
يتطلب الحساب الذي يُرسل طلب 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
المراد إنشاؤها. أضِف privilegeName
وserviceId
لكل امتياز
يجب منحه مع هذا الدور.
إحصاءات Classroom
يجب الحصول على امتياز 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
لاسترداد
قائمة بقيم 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
}
استرداد أرقام تعريف الوحدات التنظيمية
يمكنك قصر إذن وصول دور المشرف المخصّص على وحدة تنظيمية واحدة أو أكثر باستخدام رقم تعريف الوحدة التنظيمية. استخدِم
OrgUnit API لاسترداد orgUnitId
.
إحصاءات Classroom
ننصحك باختيار وحدة تنظيمية للطلاب ووحدة تنظيمية للمعلّمين عند منح دور المشرف المخصّص لمستخدم أو مجموعة معيّنين. يؤدي ذلك إلى السماح للمستخدمين الذين تم منحهم امتياز المشرف المخصّص بالوصول إلى البيانات على مستوى الطالب والصف لل units. في حال حذف الوحدة التنظيمية للطالب، لن يتمكّن المستخدمون المخصّصون من الوصول إلى بيانات الطالب. في حال حذف الوحدة التنظيمية للمعلّم، لن يتمكّن المستخدمون المخصّصون من الوصول إلى البيانات على مستوى الصف.
الوصول المؤقت إلى الصف
يمكنك قصر امتيازات الوصول المؤقت إلى الصفوف من خلال السماح للمستخدمين الذين لديهم دور المشرف المخصّص بالوصول إلى الصفوف في وحدات تنظيمية معيّنة. في حال حظر الوصول إلى وحدة تنظيمية، لا يمكن للمجموعة التي تم إسناد دور المشرف المخصّص إليها سوى الوصول إلى الصفوف التي يكون فيها المعلّم الأساسي للصف في تلك الوحدة التنظيمية.
منح دور المشرف المخصَّص
لمنح دور المشرف المخصّص لمجموعة، استخدِم طلب POST التالي. يُرجى الرجوع إلى إرشادات الحدود المفروضة على الأدوار المخصّصة وإسناد الأدوار لمعرفة حدود إسناد الأدوار.
Directory API roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
إسنادها إلى مجموعة أو مستخدم فردي
في حال منح الامتياز لمجموعة، أدرِج groupId
في حقل
assignedTo
في نص الطلب. تم الحصول على groupId
في خطوة
إنشاء مجموعات أمان. في حال منح
الامتياز لمستخدم فردي، أدرِج رقم تعريف المستخدم في الحقل assignedTo
في نص الطلب. يمكن استرداد معرّف المستخدم من خلال الاتصال بـ
users.get
وتحديد عنوان البريد الإلكتروني
للمستخدم كمَعلمة userKey
أو من خلال الاتصال بـ
users.list
.
يتطلّب الحساب الذي يُرسل طلب 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>"
}
الموارد
يمكنك الاطّلاع على مزيد من المعلومات على:
- نظرة عامة على Directory API
- المصادقة والتفويض المخصّصَين لواجهة برمجة تطبيقات Directory API
- مستندات Directory API REST
- دعم المطوّرين لواجهة برمجة التطبيقات Admin SDK API