Google グループのメンバーシップの管理

グループを作成したら、そのグループのメンバーを作成できます。このページでは、Cloud Identity Groups API を使用してメンバーシップに関する基本的なオペレーションを行う方法について説明します。Google グループの作成方法については、Google グループの作成と検索をご覧ください。

始める前に

  • Enable the Cloud Identity API.

    Enable the API

  • 認証を設定し、クライアント ライブラリをインストールします。方法については、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: メンバーに付与するロールの名前。OWNERMANAGER または 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)