管理 Google 群组的成员资格
群组存在后,可以为它创建成员资格。本页面介绍了如何使用 Cloud Identity Groups API 执行一些基本成员资格操作。如需了解如何创建 Google 群组,请参阅创建和搜索 Google 群组。
准备工作
Enable the Cloud Identity API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.设置身份验证并安装客户端库。请参阅设置 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)