إجراءات المشرف

لدى مشرفي النطاقات عدة عناصر تحكّم لإدارة الميزات والتطبيقات التي يمكن للمستخدمين في نطاقاتهم الوصول إليها. توضّح هذه الصفحة هذه الميزات وكيفية تأثيرها في عملية الدمج الخارجية أو مدى فائدتها لها، بالإضافة إلى طلبات واجهة برمجة التطبيقات ذات الصلة.

إدارة وصول المستخدمين الذين تقلّ أعمارهم عن 18 عامًا إلى التطبيقات الخارجية

على المشرفين ضبط التطبيقات الخارجية للمستخدمين الذين تقلّ أعمارهم عن 18 عامًا في "وحدة تحكّم المشرف في Google". إذا لم يضبط المشرف أحد التطبيقات، لن يتمكّن المستخدمون الذين تقلّ أعمارهم عن 18 عامًا من الوصول إلى هذا التطبيق باستخدام حساباتهم على Google Workspace for Education.

لا يُطلب من المطوّرين الذين ينشئون تطبيقات لمستخدمي Google Workspace for Education الذين تقلّ أعمارهم عن 18 عامًا اتخاذ أي إجراء. لا يمكن للمشرفين ضبط التطبيقات الخارجية إلا من خلال واجهة المستخدم في "وحدة تحكّم المشرف"، ولا يمكنهم ضبطها آليًا.

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

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

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

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

سيشرح لك هذا الدليل كيفية إكمال الخطوات التالية لأتمتة عملية تعيين الأدوار المخصّصة:

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

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

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

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>"
}

الموارد

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