ניהול חברות בקבוצות Google

אחרי שקבוצה נוצרת, אפשר ליצור חברות במועדון עבורה. בדף הזה מוסבר איך לבצע כמה פעולות בסיסיות שקשורות לחברות בקבוצות באמצעות Cloud Identity Groups API. איך יוצרים קבוצה בקבוצות Google

לפני שמתחילים

  • מפעילים את Cloud Identity API, אם הוא עדיין לא מופעל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  • מגדירים אימות ומתקינים את ספריות הלקוח. איך מגדירים את Cloud Identity Groups API

הוספת חברות בקבוצה ב-Google

REST

משתמשים ב-memberships.create method כדי להוסיף חבר לקבוצה.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫GROUP_ID: המזהה המספרי של הקבוצה שרוצים להוסיף לה חבר. כדי למצוא את המזהה של קבוצה אחת, משתמשים בשיטה groups.lookup. כדי לראות את כל מזהי הקבוצות של לקוח או מרחב שמות, משתמשים בשיטה groups.list:
  • ‫MEMBER_ID: מזהה החבר. במקרה של ישויות שמנוהלות על ידי Google, משתמשים בכתובת האימייל של החבר. לגבי ישויות שממופות לזהויות חיצוניות, צריך להשתמש במחרוזת שעומדת בדרישות של מקור הזהויות.
  • ‫ROLE_NAME: שם התפקיד שרוצים לתת לחבר. אפשר להשתמש ב-OWNER, ב-MANAGER או ב-MEMBER.
  • ‫PROJECT_ID: המזהה האלפאנומרי של Google Cloud הפרויקט שרוצים להשתמש בו כדי לשלוח את הבקשה.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

תוכן בקשת JSON:

{
  "preferredMemberKey": {
    "id": "MEMBER_ID"
  },
  "roles": [
    {
      "name": "MEMBER"
    }
  ]
}

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

התשובה מכילה Operation שמוסר את סטטוס הבקשה שלכם.

הפעולות שהסתיימו כוללות את המינוי שנוסף. לדוגמה:

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.apps.cloudidentity.groups.v1.Membership",
    "name": "groups/GROUP_ID/memberships/123456789012345678901",
    "preferredMemberKey": {
      "id": "MEMBER_ID"
    },
    "roles": [
      {
        "name": "MEMBER"
      }
    ]
  }
}

אפשר גם להשתמש בשיטה memberships.create כדי להוסיף חבר בתור מנהל או בעלים של הקבוצה:

  • כדי להגדיר מישהו כמנהל של הקבוצה, פועלים לפי ההליך להוספת חבר לקבוצה, אבל משתמשים בגוף הבקשה הבא:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "MANAGER"
        }
      ]
    }
  • כדי להגדיר מישהו כבעלים של הקבוצה, מבצעים את השלבים להוספת חבר לקבוצה, אבל משתמשים בגוף הבקשה הבא:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "OWNER"
        }
      ]
    }

Python

בדוגמה הבאה אפשר לראות איך מוסיפים חברות לקבוצה. ‫expiryDetail הוא שדה אופציונלי שאפשר להוסיף כדי להגדיר תפוגה לחברות. הערך של preferredMemberKey הוא כתובת האימייל של חבר הקבוצה.

def create_google_group_membership(service, identity_source_id, group_id, member_key):
  param = "&groupKey.id=" + group_id + "&groupKey.namespace=identitysources/" + identity_source_id
  try:
    lookupGroupNameRequest = service.groups().lookup()
    lookupGroupNameRequest.uri += param
    # Given a group ID and namespace, retrieve the ID for parent group
    lookupGroupNameResponse = lookupGroupNameRequest.execute()
    groupName = lookupGroupNameResponse.get("name")
    # Create a membership object with a memberKey and a single role of type MEMBER
    membership = {
      "preferredMemberKey": {"id": member_key},
      "roles" : {
        "name" : "MEMBER",
        "expiryDetail": {
          "expireTime": "2021-10-02T15:01:23Z"
        }
      }
    }
    # Create a membership using the ID for the parent group and a membership object
    response = service.groups().memberships().create(parent=groupName, body=membership).execute()
    print(response)
  except Exception as e:
    print(e)

רשימת החברים בקבוצת Google

REST

משתמשים בשיטה memberships.list כדי להציג את רשימת החברים בקבוצה.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫GROUP_ID: המזהה המספרי של הקבוצה שרוצים להציג את רשימת החברים שלה. כדי למצוא את המזהה של קבוצה אחת, משתמשים בשיטה groups.lookup. כדי לראות את כל מזהי הקבוצות של לקוח או מרחב שמות, משתמשים בשיטה groups.list.
  • ‫PROJECT_ID: המזהה האלפאנומרי של Google Cloud הפרויקט שרוצים להשתמש בו כדי לשלוח את הבקשה.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

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

התשובה מכילה מערך של כל החברים בקבוצה והתפקידים שלהם.

Python

הקוד הבא מציג את רשימת החברים בקבוצה:

def list_google_group_memberships(service, group_id):
  param = "&groupKey.id=" + group_id
  try:
    lookup_group_name_request = service.groups().lookup()
    lookup_group_name_request.uri += param
    lookup_group_name_response = lookup_group_name_request.execute()
    group_name = lookup_group_name_response.get("name")
    # List memberships
    response = service.groups().memberships().list(parent=group_name).execute()
    print(response)
  except Exception as e:
    print(e)