Gerir subscrições para o Grupos do Google

Depois de existir um grupo, pode criar subscrições para o mesmo. Esta página explica como realizar algumas operações de associação fundamentais com a API Cloud Identity Groups. Para saber como criar um Grupo Google, consulte o artigo Criar e pesquisar Grupos Google.

Antes de começar

  • 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  • Configure a autenticação e instale as bibliotecas de cliente. Consulte o artigo Configurar a API Cloud Identity Groups para saber como.

Adicione uma subscrição a um Grupo Google

REST

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

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • GROUP_ID: o ID numérico do grupo ao qual quer adicionar um membro. Para encontrar o ID de um único grupo, use o método groups.lookup. Para ver todos os IDs de grupos num cliente ou espaço de nomes, use o método groups.list.
  • MEMBER_ID: o ID do membro. Para entidades geridas pela Google, use o endereço de email do membro. Para entidades mapeadas com identidades externas, use uma string que cumpra os requisitos da origem da identidade.
  • ROLE_NAME: o nome da função que quer conceder ao membro. Use OWNER, MANAGER ou MEMBER.
  • PROJECT_ID: o ID alfanumérico do projeto Google Cloud que quer usar para fazer o pedido.

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, expanda uma destas opções:

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

As operações concluídas contêm a associação que foi adicionada. Por 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"
      }
    ]
  }
}

Também pode usar o método memberships.create para adicionar um membro como gestor ou proprietário do grupo:

  • Para tornar alguém gestor do grupo, siga o procedimento para adicionar um membro ao grupo, mas use o seguinte corpo do pedido:

    {
      "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 do pedido:

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

Python

O código seguinte mostra como adicionar uma associação a um grupo. expiryDetail é um campo opcional que pode ser adicionado para definir uma data de validade para o registo de membro. O valor de preferredMemberKey é o endereço de email 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 membros de um grupo Google

REST

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

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • GROUP_ID: o ID numérico do grupo cujos membros quer listar. Para encontrar o ID de um único grupo, use o método groups.lookup. Para ver todos os IDs de grupos num cliente ou espaço de nomes, use o método groups.list.
  • PROJECT_ID: o ID alfanumérico do projeto Google Cloud que quer usar para fazer o pedido.

Método HTTP e URL:

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

Para enviar o seu pedido, expanda uma destas opções:

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

Python

O código seguinte lista as associações 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)