Administra las membresías de los Grupos de Google

Una vez que exista un grupo, puedes crearle membresías. En esta página, se explica cómo realizar algunas operaciones fundamentales de membresía con la API de Grupos de Cloud Identity. Si quieres obtener información sobre cómo crear un Grupo de Google, consulta cómo crear y buscar Grupos de Google.

Antes de comenzar

  • 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 y, luego, instala las bibliotecas cliente. Consulta Configura la API de Grupos de Cloud Identity.

Agrega una membresía a un Grupo de Google

REST

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • GROUP_ID: Es el ID numérico del grupo al que deseas agregar un miembro. Para encontrar el ID de un solo grupo, usa el método groups.lookup. Para ver todos los IDs de grupo en un cliente o espacio de nombres, usa el método groups.list.
  • MEMBER_ID: ID del miembro. En el caso de las entidades administradas por Google, usa la dirección de correo electrónico del miembro. Para las entidades asignadas a identidades externas, usa una cadena que cumpla con los requisitos de la fuente de identidad.
  • ROLE_NAME: Es el nombre del rol que deseas otorgar al miembro. Usa OWNER, MANAGER o MEMBER.
  • PROJECT_ID: Es el ID alfanumérico del proyecto Google Cloud que deseas usar para realizar 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, expande una de estas opciones:

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

Las operaciones completadas contienen la membresía que se agregó. 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 agregar un miembro como administrador o propietario del grupo:

  • Para convertir a alguien en administrador del grupo, sigue el procedimiento para agregar un miembro al grupo, pero usa el siguiente cuerpo de la solicitud:

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

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

Python

En el siguiente código, se muestra cómo agregar una membresía a un grupo. expiryDetail es un campo opcional que se puede agregar a fin de establecer un vencimiento para la membresía. El valor de preferredMemberKey es la dirección de correo electrónico 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)

Enumera las membresías de un Grupo de Google

REST

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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

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

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene un array de todos los miembros del grupo y sus roles.

Python

El siguiente código enumera las membresías para 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)