Gérer les adhésions aux groupes Google

Une fois qu'un groupe existe, vous pouvez lui créer des adhésions. Cette page explique comment effectuer certaines opérations d'adhésion fondamentales avec l'API Cloud Identity Groups. Pour apprendre à créer un groupe Google Groupes, consultez la page Créer et rechercher des Google Groupes.

Avant de commencer

  • Activez l'API Cloud Identity

    Activer l'API

  • Configurez l'authentification et installez les bibliothèques clientes. Pour en savoir plus, consultez la page Configurer l'API Cloud Identity Groups.

Ajouter une appartenance à un groupe Google

REST

Utilisez la méthode memberships.create pour ajouter un membre à un groupe.

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • GROUP_ID: ID numérique du groupe auquel vous souhaitez ajouter un membre. Pour trouver l'ID d'un seul groupe, utilisez la méthode groups.lookup. Pour afficher tous les ID de groupe d'un client ou d'un espace de noms, utilisez la méthode groups.list.
  • MEMBER_ID: ID du membre. Pour les entités gérées par Google, utilisez l'adresse e-mail du membre. Pour les entités mappées sur l'identité externe, utilisez une chaîne qui répond aux exigences de la source d'identité.
  • ROLE_NAME: nom du rôle que vous souhaitez accorder au membre. Utilisez OWNER, MANAGER ou MEMBER.
  • PROJECT_ID: ID alphanumérique du projet Google Cloud que vous souhaitez utiliser pour effectuer la requête.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse contient une Operation qui indique l'état de votre requête.

Les opérations terminées contiennent l'appartenance qui a été ajoutée. Exemple :

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

Vous pouvez également utiliser la méthode memberships.create pour ajouter un membre en tant qu'administrateur ou propriétaire du groupe:

  • Pour désigner quelqu'un comme gestionnaire du groupe, suivez la procédure permettant d'ajouter un membre au groupe, mais utilisez le corps de requête suivant:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "MANAGER"
        }
      ]
    }
    
  • Pour désigner une personne comme propriétaire du groupe, suivez la procédure permettant d'ajouter un membre au groupe, mais utilisez le corps de requête suivant:

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

Python

Le code suivant vous montre comment ajouter une adhésion à un groupe. expiryDetail est un champ facultatif qui peut être ajouté pour définir un délai d'expiration pour l'adhésion. La valeur de preferredMemberKey correspond à l'adresse e-mail du membre.

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)

Lister les adhésions à un groupe Google

REST

Utilisez la méthode memberships.list pour répertorier les membres d'un groupe.

Avant d'utiliser les données de requête, effectuez les remplacements suivants:

  • GROUP_ID: ID numérique du groupe dont vous souhaitez répertorier les membres. Pour trouver l'ID d'un seul groupe, utilisez la méthode groups.lookup. Pour afficher tous les ID de groupe d'un client ou d'un espace de noms, utilisez la méthode groups.list.
  • PROJECT_ID: ID alphanumérique du projet Google Cloud que vous souhaitez utiliser pour effectuer la requête.

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse contient un tableau de tous les membres du groupe et de leurs rôles.

Python

Le code suivant répertorie les adhésions d'un groupe :

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)