管理 Google 群組成員資格
群組建立完成後,即可建立成員資格。本頁說明如何使用 Cloud Identity Groups API 執行一些基本的成員資格作業。如要瞭解如何建立 Google 群組,請參閱「建立及搜尋 Google 群組」。
事前準備
啟用 Cloud Identity API。
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。設定驗證並安裝用戶端程式庫。如要瞭解如何設定,請參閱「設定 Cloud Identity Groups API」。
將成員新增至 Google 群組
REST
使用 memberships.create 方法將成員新增至群組。
使用任何要求資料之前,請先修改下列項目的值:
-
GROUP_ID:要新增成員的群組數字 ID。如要找出單一群組的 ID,請使用groups.lookup方法。如要查看特定客戶或命名空間下的所有群組 ID,請使用groups.list方法。 -
MEMBER_ID:成員 ID。如果是 Google 管理的實體,請使用成員的電子郵件地址。如果是對應外部身分的實體,請使用符合身分來源規定的字串。 -
ROLE_NAME:要授予成員的角色名稱。 請使用OWNER、MANAGER或MEMBER。 -
PROJECT_ID:您要用於提出要求的 Google Cloud 專案英數字元 ID。
HTTP 方法和網址:
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:要列出成員的群組數字 ID。如要找出單一群組的 ID,請使用groups.lookup方法。如要查看特定客戶或命名空間下的所有群組 ID,請使用groups.list方法。 -
PROJECT_ID:您要用於提出要求的 Google Cloud 專案英數字元 ID。
HTTP 方法和網址:
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)