Gestionar suscripciones a grupos de Google

Una vez que hayas creado un grupo, podrás crear membresías para él. En esta página se explica cómo realizar algunas operaciones fundamentales de pertenencia con la API Groups de Cloud Identity. Para saber cómo crear un grupo de Google, consulta el artículo Crear y buscar grupos de Google.

Antes de empezar

  • 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

  • Configura la autenticación e instala las bibliotecas de cliente. Consulta cómo configurar la API Cloud Identity Groups.

Añadir una suscripción a un grupo de Google

REST

Usa el método memberships.create para añadir un miembro a un grupo.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • GROUP_ID: ID numérico del grupo al que quieres añadir un miembro. Para encontrar el ID de un solo grupo, usa el método groups.lookup. Para ver todos los IDs de grupo de un cliente o un espacio de nombres, usa el método groups.list.
  • MEMBER_ID: ID del miembro. En el caso de las entidades gestionadas por Google, usa la dirección de correo del miembro. En el caso de las entidades asignadas a identidades externas, usa una cadena que cumpla los requisitos de la fuente de identidad.
  • ROLE_NAME: el nombre del rol que quieres asignar al miembro. Usa OWNER, MANAGER o MEMBER.
  • PROJECT_ID: el ID alfanumérico del proyecto Google Cloud que quieras usar para hacer la solicitud.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, despliega una de estas opciones:

La respuesta contiene un Operation que indica el estado de tu solicitud.

Las operaciones finalizadas contienen la pertenencia que se ha añadido. Por ejemplo:

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

También puedes usar el método memberships.create para añadir un miembro como administrador o propietario del grupo:

  • Para convertir a un usuario en administrador del grupo, sigue el procedimiento para añadir un miembro al grupo, pero usa el siguiente cuerpo de solicitud:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "MANAGER"
        }
      ]
    }
  • Para convertir a un usuario en propietario del grupo, sigue el procedimiento para añadir un miembro al grupo, pero usa el siguiente cuerpo de solicitud:

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

Python

En el siguiente código se muestra cómo añadir una pertenencia a un grupo. expiryDetail es un campo opcional que se puede añadir para definir una fecha de vencimiento de la pertenencia. El valor de preferredMemberKey es la dirección de correo del miembro.

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)

Mostrar las suscripciones de un grupo de Google

REST

Usa el método memberships.list para enumerar los miembros de un grupo.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • GROUP_ID: ID numérico del grupo del que quiere listar los miembros. Para encontrar el ID de un solo grupo, usa el método groups.lookup. Para ver todos los IDs de grupo de un cliente o un espacio de nombres, usa el método groups.list.
  • PROJECT_ID: el ID alfanumérico del proyecto Google Cloud que quieras usar para hacer la solicitud.

Método HTTP y URL:

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

Para enviar tu solicitud, despliega una de estas opciones:

La respuesta contiene una matriz con todos los miembros del grupo y sus roles.

Python

El siguiente código muestra las membresías de un 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)