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 관리 항목의 경우 멤버의 이메일 주소를 사용합니다. 외부 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)