ניהול חברות בקבוצות Google
אחרי שקבוצה נוצרת, אפשר ליצור חברות במועדון עבורה. בדף הזה מוסבר איך לבצע כמה פעולות בסיסיות שקשורות לחברות בקבוצות באמצעות Cloud Identity Groups API. איך יוצרים קבוצה בקבוצות Google
לפני שמתחילים
מפעילים את Cloud Identity API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמגדירים אימות ומתקינים את ספריות הלקוח. איך מגדירים את 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)