פעולות של אדמינים

למנהלי דומיינים יש כמה אמצעי בקרה לניהול התכונות והאפליקציות שהמשתמשים בדומיין שלהם יכולים לגשת אליהן. בדף הזה מתוארות התכונות האלה, האופן שבו הן עשויות להשפיע על שילוב חיצוני או להיות שימושיות לו, ובקשות API רלוונטיות.

ניהול הגישה של משתמשים מתחת לגיל 18 לאפליקציות צד שלישי

האדמינים צריכים להגדיר אפליקציות של צד שלישי במסוף Google Admin למשתמשים מתחת לגיל 18. אם האדמין לא הגדיר אפליקציה, משתמשים מתחת לגיל 18 לא יוכלו לגשת לאפליקציה הזו באמצעות חשבון Google Workspace for Education שלהם.

מפתחים שמפתחים אפליקציות למשתמשי Google Workspace for Education מתחת לגיל 18 לא נדרשים לבצע שום פעולה. רק אדמינים יכולים להגדיר אפליקציות של צד שלישי בממשק המשתמש של מסוף Admin, ולא ניתן לעשות זאת באופן פרוגרמטי.

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

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

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

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

במדריך הזה נסביר איך לבצע את השלבים הבאים כדי להפוך את תהליך הקצאת התפקידים בהתאמה אישית לאוטומטי:

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

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

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

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

קוראים ל-method‏ 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>"
}

משאבים

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