تحديد أدوار المشرف المخصَّصة لميزات Classroom

يمكن للمشرفين إنشاء أدوار مخصّصة للمشرفين في "وحدة تحكّم المشرف" للسماح لأفراد أو مجموعات معيّنة لديهم ترخيص Education Plus بما يلي:

يوضّح هذا الدليل كيفية إعداد هذه الميزات في نطاقك باستخدام واجهات برمجة التطبيقات من Google.

أتمتة عملية منح الأدوار المخصّصة

لأتمتة عملية إسناد الأدوار المخصّصة، اتّبِع الخطوات التالية:

  1. أنشئ مجموعات أمان لتنظيم المستخدمين الذين يمكنهم الوصول إلى هذه الميزات.
  2. أضِف أعضاءً إلى المجموعات.
  3. أنشئ دورًا مخصَّصًا للمشرف من خلال اختيار الإذن المناسب.
  4. استرداد أرقام تعريف الوحدات التنظيمية
  5. تطبيق دور مخصَّص للمشرف على المجموعات التي تم إنشاؤها حديثًا

المتطلبات الأساسية

  1. اطّلِع على أدلة البدء السريع للتعرّف على كيفية إعداد تطبيق وتشغيله باستخدام Google APIs بلغات مثل JavaScript وPython وJava.
  2. اطّلِع على نظرة عامة على Groups API.
  3. قبل استخدام أي من واجهات Cloud Identity API الموضّحة في هذا الدليل، يجب إعداد Cloud Identity. تُستخدَم واجهات برمجة التطبيقات هذه لإنشاء مجموعات من أجل منح امتيازات المشرف.
  4. إعداد 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>"
}

الموارد

يمكنك العثور على معلومات إضافية على: