يتوفّر لمشرفي النطاقات عدة عناصر تحكّم لإدارة الميزات والتطبيقات التي يمكن للمستخدمين في نطاقاتهم الوصول إليها. توضّح هذه الصفحة هذه الميزات وكيفية تأثيرها في عملية الدمج الخارجي أو الاستفادة منها، وطلبات واجهة برمجة التطبيقات ذات الصلة.
إدارة أذونات وصول المستخدمين الذين تقلّ أعمارهم عن 18 عامًا إلى التطبيقات التابعة لجهات خارجية
على المشرفين ضبط التطبيقات التابعة لجهات خارجية في وحدة تحكّم المشرف في Google للمستخدمين الذين تقلّ أعمارهم عن 18 عامًا. إذا لم يضبط المشرف أحد التطبيقات، لن يتمكّن المستخدمون الذين تقلّ أعمارهم عن 18 عامًا من الوصول إلى ذلك التطبيق باستخدام حساباتهم على Google Workspace for Education.
ليس على المطوّرين الذين ينشئون تطبيقات مُلهمة لمستخدمي Google Workspace for Education الذين تقل أعمارهم عن 18 عامًا اتخاذ أي إجراء. لا يمكن للمشرفين ضبط التطبيقات التابعة لجهات خارجية إلا من خلال واجهة مستخدم "وحدة تحكّم المشرف"، ولا يمكن إجراء ذلك من خلال برمجة.
تحديد أدوار المشرف المخصّصة لميزات Classroom
يمكن للمشرفين إنشاء أدوار مشرف مخصّصة في وحدة تحكّم المشرف للسماح لأفراد أو مجموعات معيّنة لديها ترخيص Education Plus بما يلي:
اطّلِع على إحصاءات Classroom لفهم بيانات مثل نسبة إكمال المهام الدراسية والمؤشرات المتعلّقة بالدرجات واستخدام Classroom.
الوصول إلى الصفوف مؤقتًا في Classroom بدون تعيين معلّم مساعد دائم.
يوضّح هذا الدليل كيفية إعداد هذه الميزات في نطاقك باستخدام واجهات برمجة تطبيقات Google.
التشغيل الآلي لعملية منح الأدوار المخصّصة
سيوضّح لك هذا الدليل كيفية إكمال الخطوات التالية لأتمتة عملية منح الدوار المخصّصة:
- يمكنك إنشاء مجموعات أمان لتنظيم المستخدمين الذين يمكنهم الوصول إلى هذه الميزات.
- إضافة أعضاء إلى المجموعات
- يمكنك إنشاء دور مخصَّص للمشرف من خلال اختيار الامتياز الصحيح.
- استرداد أرقام تعريف الوحدات التنظيمية
- يمكنك تطبيق الدور المخصَّص للمشرف على المجموعات التي تم إنشاؤها حديثًا.
المتطلبات الأساسية
- اطّلِع على أدلة البدء السريع للتعرّف على كيفية إعداد تطبيق وتشغيله باستخدام واجهات برمجة تطبيقات Google بلغات مثل JavaScript وPython و Java.
- قبل استخدام أي من واجهات Cloud Identity API الموضَّحة في هذا الدليل، عليك إعداد Cloud Identity. تُستخدَم واجهات برمجة التطبيقات هذه ل إنشاء مجموعات لمنح امتيازات المشرف.
- اطّلِع على نظرة عامة على واجهة برمجة التطبيقات Groups API وإعداد واجهة برمجة التطبيقات Groups API إذا أردت منح إذن الوصول إلى دور مخصّص لمجموعة من المستخدمين بدلاً من مستخدم individual.
إنشاء مجموعات أمان
أنشئ مجموعة أمان باستخدام طريقة 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 التالي إلى طريقة واجهة برمجة تطبيقات الدليل 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 ل retrieving the orgUnitId
.
إحصاءات Classroom
ننصحك باختيار وحدة تنظيمية للطلاب ووحدة تنظيمية للمعلّمين عند منح دور المشرف المخصّص لمستخدم أو مجموعة معيّنين. يؤدي ذلك إلى السماح للمستخدمين الذين تم منحهم امتياز المشرف المخصّص بالوصول إلى البيانات على مستوى الطالب والصف لل units. في حال حذف الوحدة التنظيمية للطالب، لن يتمكّن المستخدمون المخصّصون من الوصول إلى بيانات الطالب. إذا تم حذف الوحدة التنظيمية الخاصة بالمعلّم، لن يتمكن المستخدمون المحدَّدون من الوصول إلى البيانات على مستوى الصف.
الوصول المؤقت إلى الصف
يمكنك فرض قيود على امتيازات الوصول المؤقت إلى الصفوف من خلال السماح للمستخدمين الذين لديهم دور المشرف المخصّص بالوصول إلى الصفوف في وحدات تنظيمية محددة. في حال حظر الوصول إلى وحدة تنظيمية، لا يمكن للمجموعة التي تم منحها دور المشرف المخصّص الوصول إلا إلى الصفوف التي يكون فيها معلّمها الأساسي في تلك الوحدة التنظيمية.
منح دور المشرف المخصَّص
لمنح دور المشرف المخصّص لمجموعة، استخدِم طلب POST التالي. راجِع إرشادات القيود المفروضة على الأدوار المخصّصة وإسناد الأدوار للاطّلاع على الحدود القصوى المسموح بها لإسناد الأدوار.
واجهة برمجة التطبيقات للدليل roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
التعيين إلى مجموعة أو مستخدم فردي
وفي حال منح الامتياز إلى مجموعة، يمكنك تضمين groupId
في الحقل assignedTo
في نص الطلب. تم الحصول على groupId
في خطوة إنشاء مجموعات
الأمان. في حال منح الامتياز لمستخدم individual
، أدرِج رقم تعريف المستخدم في الحقل 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 الخاصة بواجهة برمجة تطبيقات الدليل
- دعم المطوّرين لواجهة برمجة التطبيقات Admin SDK API