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 管理のエンティティの場合は、メンバーのメールアドレスを使用します。外部 ID マッピング エンティティの場合は、ID ソースの要件を満たす文字列を使用します。 -
ROLE_NAME
: メンバーに付与するロールの名前。OWNER
、MANAGER
またはMEMBER
を使用します。 -
PROJECT_ID
: リクエストに使用する Google Cloud プロジェクトの英数字の ID。
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
: メンバーを一覧表示するグループの数値 ID。単一のグループの ID を確認するには、groups.lookup
メソッドを使用します。お客様または名前空間の配下にあるすべてのグループ ID を表示するには、groups.list
コマンドを使用します。 -
PROJECT_ID
: リクエストに使用する Google Cloud プロジェクトの英数字の ID。
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)