نقش‌های سرپرست سفارشی را برای ویژگی‌های Classroom تعیین کنید

مدیران می‌توانند نقش‌های مدیریتی سفارشی را در کنسول مدیریت ایجاد کنند تا به افراد یا گروه‌های خاصی که دارای مجوز Education Plus هستند، اجازه دهند:

این راهنما نحوه تنظیم این ویژگی‌ها را در دامنه شما با استفاده از APIهای گوگل توضیح می‌دهد.

خودکارسازی فرآیند تخصیص نقش سفارشی

برای خودکارسازی فرآیند تخصیص نقش سفارشی:

  1. گروه‌های امنیتی ایجاد کنید تا کاربرانی را که می‌توانند به این ویژگی‌ها دسترسی داشته باشند، سازماندهی کنید.
  2. اعضا را به گروه‌ها اضافه کنید.
  3. با انتخاب امتیاز صحیح، یک نقش مدیر سفارشی ایجاد کنید.
  4. بازیابی شناسه‌های واحدهای سازمانی
  5. نقش مدیر سفارشی را به گروه‌های تازه ایجاد شده اعمال کنید.

پیش‌نیازها

  1. برای آشنایی با نحوه راه‌اندازی و اجرای یک برنامه با استفاده از APIهای گوگل در زبان‌هایی مانند جاوا اسکریپت، پایتون و جاوا، راهنماهای شروع سریع را مطالعه کنید.
  2. مرور کلی API گروه‌ها را مطالعه کنید.
  3. قبل از استفاده از هر یک از APIهای Cloud Identity که در این راهنما توضیح داده شده است، باید Cloud Identity را تنظیم کنید . این APIها برای ایجاد گروه‌هایی جهت اختصاص امتیازات مدیریتی استفاده می‌شوند.
  4. 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 دقیقه تأخیر برای انتشار عضویت وجود داشته باشد. علاوه بر این، API برای چرخه‌های عضویت در گروه‌ها خطا برمی‌گرداند. به عنوان مثال، اگر group1 عضو group2 باشد، group2 نمی‌تواند عضو group1 باشد.

برای اضافه کردن یک عضو به یک گروه، از درخواست POST زیر استفاده کنید.

members.insert API دایرکتوری.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 که کلاینت شما باید برقرار کند، کاهش یابد.

ایجاد یک نقش مدیر سفارشی ممتاز

API دایرکتوری به شما امکان می‌دهد از کنترل دسترسی مبتنی بر نقش (RBAC) برای مدیریت دسترسی به ویژگی‌های دامنه Google Workspace خود استفاده کنید. می‌توانید نقش‌های سفارشی با امتیازاتی ایجاد کنید تا دسترسی مدیر را به طور خاص‌تر از نقش‌های از پیش ساخته شده ارائه شده توسط Google Workspace محدود کنید. می‌توانید نقش‌ها را به کاربران یا گروه‌های امنیتی اختصاص دهید. برای اطلاعات بیشتر در مورد محدودیت‌های ایجاد نقش، به نقش سفارشی و محدودیت‌های انتساب نقش مراجعه کنید.

برای ایجاد یک نقش جدید، از درخواست POST زیر استفاده کنید.

roles.insert API دایرکتوری.insert:

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles

customerId همان شناسه‌ای است که در مرحله ۱ این راهنما استفاده شد.

حسابی که درخواست POST را ارسال می‌کند، به محدوده‌ی زیر نیاز دارد:

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

درخواست بدنه

بدنه درخواست شامل جزئیات role است که باید ایجاد شود. برای هر امتیازی که باید با این نقش اعطا شود، یک privilegeName و serviceId اضافه کنید.

تجزیه و تحلیل کلاس درس

برای ایجاد یک نقش سفارشی که بتواند به داده‌های تحلیلی دسترسی داشته باشد، به همراه serviceId تنظیم شده روی 019c6y1840fzfkt ، امتیاز EDU_ANALYTICS_DATA_ACCESS مورد نیاز است.

{
   roleName: "Education Admin", // customize as needed
   roleDescription: "Access to view analytics data", // customize as needed
   rolePrivileges: [
      {
         privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
         serviceId: "019c6y1840fzfkt"
      }
   ]
}

دسترسی موقت به کلاس

برای ایجاد یک نقش سفارشی که بتواند به طور موقت به کلاس‌ها دسترسی داشته باشد، به همراه serviceId تنظیم شده روی 019c6y1840fzfkt ، امتیاز ADMIN_OVERSIGHT_MANAGE_CLASSES مورد نیاز است.

{
   roleName: "Education Admin", // customize as needed
   roleDescription: "Access to manage classes privilege", // customize as needed
   rolePrivileges: [
      {
         privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
         serviceId: "019c6y1840fzfkt"
      }
   ]
}

برای بازیابی لیستی از privilegeIds و serviceIds ، متد privileges.list را فراخوانی کنید.

پاسخ

پاسخ شامل نمونه جدید نقش است.

تجزیه و تحلیل کلاس درس

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

بازیابی شناسه‌های واحد سازمانی

شما می‌توانید دسترسی نقش مدیر سفارشی را به یک یا چند واحد سازمانی با استفاده از شناسه واحد سازمانی محدود کنید. از API OrgUnit برای بازیابی orgUnitId استفاده کنید.

تجزیه و تحلیل کلاس درس

توصیه می‌شود هنگام اختصاص نقش مدیر سفارشی به یک کاربر یا گروه خاص، یک واحد سازمانی دانش‌آموز و یک واحد سازمانی معلم را انتخاب کنید. انجام این کار به کاربرانی که با امتیاز مدیر سفارشی تعیین شده‌اند، اجازه می‌دهد به داده‌های سطح دانش‌آموز و کلاس برای واحدهای سازمانی دسترسی داشته باشند. اگر واحد سازمانی دانش‌آموز حذف شود، کاربران تعیین‌شده به داده‌های دانش‌آموز دسترسی نخواهند داشت. اگر واحد سازمانی معلم حذف شود، کاربران تعیین‌شده به داده‌های سطح کلاس دسترسی نخواهند داشت.

دسترسی موقت به کلاس

شما می‌توانید با اجازه دادن به کاربرانی که نقش مدیر سفارشی دارند و به کلاس‌های واحدهای سازمانی خاص دسترسی دارند، امتیازات دسترسی موقت به کلاس‌ها را محدود کنید. در صورت محدود کردن دسترسی به یک واحد سازمانی، گروهی که نقش مدیر سفارشی به آنها اختصاص داده شده است، فقط می‌توانند به کلاس‌هایی دسترسی داشته باشند که معلم اصلی کلاس در آن واحد سازمانی قرار دارد.

نقش مدیر سفارشی را اختصاص دهید

برای اختصاص نقش مدیر سفارشی به یک گروه، از درخواست POST زیر استفاده کنید. برای محدودیت‌های اختصاص نقش به راهنمای نقش سفارشی و محدودیت‌های اختصاص نقش مراجعه کنید.

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

منابع

اطلاعات تکمیلی را می‌توانید در آدرس زیر بیابید: