הקצאת תפקידי אדמין בהתאמה אישית לתכונות של Classroom

אדמינים יכולים ליצור תפקידי אדמין בהתאמה אישית במסוף Admin כדי לאפשר לאנשים או לקבוצות מסוימות עם רישיון Education Plus:

במדריך הזה מוסבר איך להגדיר את התכונות האלה בדומיין באמצעות ממשקי API של Google.

אוטומציה של תהליך הקצאת תפקידים בהתאמה אישית

כדי להגדיר אוטומציה לתהליך הקצאת התפקידים בהתאמה אישית:

  1. יוצרים קבוצות אבטחה כדי לארגן את המשתמשים שיכולים לגשת לתכונות האלה.
  2. מוסיפים חברים לקבוצות.
  3. יוצרים תפקיד אדמין בהתאמה אישית על ידי בחירת ההרשאה הנכונה.
  4. אחזור מזהי יחידות ארגוניות
  5. מחילים את תפקיד האדמין בהתאמה אישית על הקבוצות החדשות שנוצרו.

דרישות מוקדמות

  1. במדריכים למתחילים מוסבר איך להגדיר ולהריץ אפליקציה באמצעות Google APIs בשפות כמו JavaScript,‏ Python ו-Java.
  2. קראו את המאמר סקירה כללית על Groups API.
  3. לפני שמשתמשים באחד מממשקי Cloud Identity API שמתוארים במדריך הזה, צריך להגדיר את Cloud Identity. ממשקי ה-API האלה משמשים ליצירת קבוצות להקצאת הרשאות אדמין.
  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 דקות עד שהחברות תתעדכן. בנוסף, ה-API מחזיר שגיאה לגבי מחזורים בחברויות בקבוצות. לדוגמה, אם 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

כדי ליצור תפקיד בהתאמה אישית עם גישה לנתוני Analytics, צריך הרשאה מסוג 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"
      }
   ]
}

כדי לאחזר רשימה של privilegeIds ושל serviceIds, צריך להפעיל את ה-method‏ privileges.list.

תשובה

התשובה תכיל את המופע החדש של התפקיד.

ניתוח נתונים של 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>"
}

משאבים

מידע נוסף זמין בכתובת: