يمكن للمشرفين إنشاء أدوار مشرفين مخصّصة في "وحدة تحكّم المشرف" للسماح لأفراد أو مجموعات معيّنة لديهم ترخيص Education Plus بما يلي:
الاطّلاع على إحصاءات Classroom لفهم بيانات مثل معدّل إكمال المهام والمؤشرات المتعلقة بالدرجات ومعدّل استخدام Classroom
الوصول مؤقتًا إلى الصفوف في Classroom لدعم المعلّمين ونشر الإشعارات وغير ذلك، بدون أن يتم تعيينهم كمعلّمين مساعدين دائمين
يشرح هذا الدليل كيفية إعداد هذه الميزات في نطاقك باستخدام واجهات برمجة التطبيقات من Google.
أتمتة عملية تعيين الأدوار المخصّصة
لأتمتة عملية تعيين الأدوار المخصّصة:
- أنشئ مجموعات أمان لتنظيم المستخدمين الذين يمكنهم الوصول إلى هذه الميزات.
- أضِف أعضاء إلى المجموعات.
- أنشئ دورًا مخصَّصًا للمشرف من خلال اختيار الامتياز الصحيح.
- استرِدّ أرقام تعريف الوحدات التنظيمية.
- طبِّق دور المشرف المخصَّص على المجموعات التي تم إنشاؤها حديثًا.
المتطلبات الأساسية
- اقرأ الـ أدلة البدء السريع لفهم كيفية إعداد وتشغيل تطبيق باستخدام Google APIs بلغات مثل JavaScript وPython و Java.
- اقرأ نظرة عامة على واجهة برمجة تطبيقات المجموعات.
- قبل استخدام أي من واجهات برمجة التطبيقات Cloud Identity الموضّحة في هذا الدليل، يجب إعداد Cloud Identity. تُستخدَم واجهات برمجة التطبيقات هذه لإنشاء مجموعات لمنح امتيازات المشرف.
- إعداد واجهة برمجة تطبيقات "مجموعات Google".
إنشاء مجموعات أمان
أنشئ مجموعة أمان باستخدام الـ 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.groupshttps://www.googleapis.com/auth/cloud-identityhttps://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.grouphttps://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 التي يجب أن يجريها العميل.
إنشاء دور مخصَّص للمشرف بأذونات مميّزة
تتيح لك واجهة برمجة تطبيقات "دليل Google" استخدام التحكّم في الوصول استنادًا إلى الدور (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
ننصحك باختيار وحدة تنظيمية للطلاب ووحدة تنظيمية للمعلّمين عند تعيين دور المشرف المخصّص لمستخدم أو مجموعة معيّنة. يسمح ذلك للمستخدمين الذين تم منحهم امتياز المشرف المخصّص بالوصول إلى بيانات الطلاب والبيانات على مستوى الصف للوحدات التنظيمية. إذا تم حذف الوحدة التنظيمية للطلاب، لن يتمكّن المستخدمون المحدّدون من الوصول إلى بيانات الطلاب. إذا تم حذف الوحدة التنظيمية للمعلّمين، لن يتمكّن المستخدمون المحدّدون من الوصول إلى البيانات على مستوى الصف.
الوصول المؤقت إلى الصف
يمكنك حصر امتيازات الوصول المؤقت إلى الصف من خلال السماح للمستخدمين الذين لديهم دور مخصَّص للمشرف بالوصول إلى الصفوف في وحدات تنظيمية معيّنة. عند حظر الوصول إلى وحدة تنظيمية، لا يمكن للمجموعة التي تم منحها دور المشرف المخصَّص الوصول إلا إلى الصفوف التي يكون معلّمها الأساسي في تلك الوحدة التنظيمية.
تعيين دور مخصَّص للمشرف
لمنح دور مخصَّص للمشرف لمجموعة، استخدِم طلب 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