تتوفّر لمشرفي النطاق عناصر تحكّم متعدّدة لإدارة الميزات والتطبيقات التي يمكن للمستخدمين في نطاقهم الوصول إليها. توضّح هذه الصفحة هذه الميزات وكيفية تأثيرها في عملية دمج خارجية أو مدى فائدتها لها، بالإضافة إلى طلبات واجهة برمجة التطبيقات ذات الصلة.
إدارة وصول المستخدمين الذين تقلّ أعمارهم عن 18 عامًا إلى التطبيقات التابعة لجهات خارجية
على المشرفين ضبط إعدادات التطبيقات الخارجية في "وحدة تحكّم المشرف في Google" للمستخدمين الذين تقلّ أعمارهم عن 18 عامًا. إذا لم يضبط المشرف إعدادات أحد التطبيقات، لن يتمكّن المستخدمون الذين تقلّ أعمارهم عن 18 عامًا من الوصول إلى هذا التطبيق باستخدام حساباتهم على Google Workspace for Education.
ليس على المطوّرين الذين ينشئون تطبيقات لمستخدمي Google Workspace for Education الذين تقلّ أعمارهم عن 18 عامًا اتّخاذ أي إجراء. لا يمكن ضبط التطبيقات التابعة لجهات خارجية إلا من خلال المشرفين في واجهة مستخدم "وحدة تحكّم المشرف"، ولا يمكن إتمام ذلك آليًا.
تحديد أدوار مشرف مخصّصة لميزات Classroom
يمكن للمشرفين إنشاء أدوار مشرفين مخصّصة في "وحدة تحكّم المشرف" للسماح لأفراد أو مجموعات معيّنة لديهم ترخيص Education Plus بما يلي:
عرض إحصاءات Classroom لفهم البيانات، مثل إكمال المهام الدراسية ومؤشرات الدرجات ومعدّل استخدام Classroom
الوصول مؤقتًا إلى الصفوف في Classroom بدون تعيين معلّم مساعد دائم
يوضّح هذا الدليل كيفية إعداد هذه الميزات في نطاقك باستخدام واجهات برمجة التطبيقات من Google.
أتمتة عملية منح الأدوار المخصّصة
سيرشدك هذا الدليل إلى كيفية إكمال الخطوات التالية لأتمتة عملية تعيين الأدوار المخصّصة:
- أنشئ مجموعات أمان لتنظيم المستخدمين الذين يمكنهم الوصول إلى هذه الميزات.
- أضِف أعضاءً إلى المجموعات.
- أنشئ دورًا مخصَّصًا للمشرف من خلال اختيار الامتياز المناسب.
- استرداد أرقام تعريف الوحدات التنظيمية
- طبِّق دور المشرف المخصّص على المجموعات التي تم إنشاؤها حديثًا.
المتطلبات الأساسية
- اطّلِع على أدلة البدء السريع للتعرّف على كيفية إعداد تطبيق وتشغيله باستخدام واجهات Google API بلغات مثل JavaScript وPython وJava.
- قبل استخدام أي من واجهات Cloud Identity API الموضّحة في هذا الدليل، يجب إعداد Cloud Identity. تُستخدَم واجهات برمجة التطبيقات هذه لإنشاء مجموعات من أجل منح امتيازات المشرف.
- اطّلِع على نظرة عامة على 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
). العثور على رقم تعريف العميل
{
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
ننصحك باختيار وحدة تنظيمية للطلاب ووحدة تنظيمية للمعلمين عند منح دور مشرف مخصّص لمستخدم أو مجموعة معيّنة. ويتيح ذلك للمستخدمين الذين تم منحهم امتيازات مشرف مخصّصة الوصول إلى بيانات الطلاب والصفوف في الوحدات التنظيمية. في حال حذف الوحدة التنظيمية الخاصة بالطلاب، لن يتمكّن المستخدمون المحدّدون من الوصول إلى بيانات الطلاب. في حال عدم تضمين الوحدة التنظيمية الخاصة بالمعلّم، لن يتمكّن المستخدمون المحدّدون من الوصول إلى البيانات على مستوى الصف.
الوصول المؤقت إلى الصف
يمكنك حصر امتيازات الوصول المؤقت إلى الصفوف من خلال السماح للمستخدمين الذين لديهم دور مشرف مخصّص بالوصول إلى الصفوف في وحدات تنظيمية معيّنة. في حال حظر الوصول إلى وحدة تنظيمية، لا يمكن للمجموعة التي تم تحديد دور مشرف مخصّص لها الوصول إلا إلى الصفوف التي يكون المعلّم الأساسي فيها ضمن تلك الوحدة التنظيمية.
منح دور المشرف المخصّص
لمنح دور مشرف مخصّص لمجموعة، استخدِم طلب 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
- مستندات REST الخاصة بواجهة Directory API
- الدعم المخصّص للمطوّرين لواجهة برمجة التطبيقات SDK للمشرف