Como gerenciar assinaturas para Grupos do Google

Você pode criar assinaturas para um grupo depois de criá-lo. Nesta página, explicamos como executar algumas operações básicas de assinatura com a API Cloud Identity Groups. Para saber como criar um Grupo do Google, consulte Como criar e pesquisar Grupos do Google.

Antes de começar

Adicionar uma assinatura a um Grupo do Google

REST

Use o método memberships.create para adicionar um membro a um grupo.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • GROUP_ID: o ID numérico do grupo em que você quer adicionar um membro. Para encontrar o ID de um único grupo, use o método groups.lookup. Para conferir todos os IDs de grupo em um cliente ou namespace, use o método groups.list.
  • MEMBER_ID: o ID do membro. Para entidades gerenciadas pelo Google, use o endereço de e-mail do membro. Para entidades mapeadas com identidade externa, use uma string que atenda aos requisitos da origem de identidade.
  • ROLE_NAME: o nome do papel que você quer conceder ao membro. Use OWNER, MANAGER ou MEMBER.
  • PROJECT_ID: o ID alfanumérico do projeto do Google Cloud que você quer usar para fazer a solicitação.

Método HTTP e URL:

POST https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

Corpo JSON da solicitação:

{
  "preferredMemberKey": {
    "id": "MEMBER_ID"
  },
  "roles": [
    {
      "name": "MEMBER"
    }
  ]
}

Para enviar a solicitação, expanda uma destas opções:

A resposta contém um Operation que indica o status da solicitação.

As operações concluídas contêm a associação que foi adicionada. Exemplo:

{
  "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"
      }
    ]
  }
}

Você também pode usar o método memberships.create para adicionar um membro como administrador ou proprietário do grupo:

  • Para tornar alguém administrador do grupo, siga o procedimento para adicionar um membro ao grupo, mas use o seguinte corpo de solicitação:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "MANAGER"
        }
      ]
    }
  • Para tornar alguém proprietário do grupo, siga o procedimento para adicionar um membro ao grupo, mas use o seguinte corpo de solicitação:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "OWNER"
        }
      ]
    }

Python

O código a seguir mostra como adicionar uma associação a um grupo. expiryDetail é um campo opcional que pode ser adicionado para definir a validade da assinatura. O valor de preferredMemberKey é o endereço de e-mail do membro.

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)

Listar assinaturas de um Grupo do Google

REST

Use o método memberships.list para listar os membros de um grupo.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • GROUP_ID: o ID numérico do grupo para o qual você quer mostrar os membros. Para encontrar o ID de um único grupo, use o método groups.lookup. Para conferir todos os IDs de grupo em um cliente ou namespace, use o método groups.list.
  • PROJECT_ID: o ID alfanumérico do projeto do Google Cloud que você quer usar para fazer a solicitação.

Método HTTP e URL:

GET https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

Para enviar a solicitação, expanda uma destas opções:

A resposta contém uma matriz de todos os membros do grupo e as funções deles.

Python

O código a seguir lista as assinaturas de um grupo:

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)