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

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

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

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

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

  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

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

מקורות מידע

מידע נוסף ניתן למצוא בכתובת: