管理 Google 群组的成员资格

群组存在后,可以为它创建成员资格。本页面介绍了如何使用 Cloud Identity Groups API 执行一些基本成员资格操作。如需了解如何创建 Google 群组,请参阅创建和搜索 Google 群组

准备工作

  • 启用 Cloud Identity API。

    启用 API

  • 设置身份验证并安装客户端库。请参阅设置 Cloud Identity Groups API,了解具体方式。

向 Google 群组添加成员资格

REST

使用 memberships.create 方法向群组添加成员。

在使用任何请求数据之前,请先进行以下替换:

  • GROUP_ID:您要向其中添加成员的群组的数字 ID。要查找单个组的 ID,请使用 groups.lookup 方法。如需查看客户或命名空间下的所有群组 ID,请使用 groups.list 方法。
  • MEMBER_ID:成员的 ID。对于由 Google 管理的实体,请使用成员的电子邮件地址。对于外部身份映射实体,请使用符合身份源要求的字符串。
  • ROLE_NAME:您要向成员授予的角色的名称。请使用 OWNERMANAGERMEMBER
  • 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)