List groups

Espace de noms: microsoft.graph

Répertorier tous les groupes disponibles dans une organisation, à l’exception des groupes de distribution dynamique. Pour récupérer des groupes de distribution dynamiques, utilisez le Centre d’administration Exchange.

Cette opération renvoie par défaut uniquement un sous-ensemble de propriétés pour chaque groupe. Ces propriétés par défaut sont indiquées dans la section Propriétés. Pour obtenir des propriétés qui ne sont pas renvoyées par défaut, effectuez une opération GET pour le groupe et spécifiez les propriétés dans une option de requête OData $select. Les propriétés hasMembersWithLicenseErrors et isArchived sont une exception et ne sont pas retournées dans la $select requête.

Remarque

Cette demande peut avoir des retards de réplication pour les groupes qui ont été récemment créés, mis à jour ou supprimés. Les groupes récemment créés ou mis à jour peuvent ne pas apparaître immédiatement dans les résultats, et les groupes récemment supprimés peuvent encore apparaître brièvement dans les résultats. Relancez la demande après un bref délai. Pour plus d’informations, consultez Conception pour la cohérence éventuelle de Microsoft Entra.

Cette API est disponible dans les déploiements cloud nationaux suivants.

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme étant les moins privilégiées pour cette API. Utilisez une ou plusieurs autorisations privilégiées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, voir Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez la référence des autorisations.

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
Déléguée (compte professionnel ou scolaire) Group-NestingSupport.ReadWrite.All Group.ReadBasic.All, Directory.Read.All, Directory.ReadWrite.All, Group-PreferredDataLocation.ReadWrite.All, Group.ManageProtection.All, Group.Read.All, Group.ReadWrite.All, GroupMember.Read.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Group-NestingSupport.ReadWrite.All Group.ReadBasic.All, Directory.Read.All, Directory.ReadWrite.All, Group-PreferredDataLocation.ReadWrite.All, Group.ManageProtection.All, Group.Read.All, Group.ReadWrite.All, GroupMember.Read.All

Requête HTTP

GET /groups

Paramètres facultatifs de la requête

Cette méthode prend en charge les paramètres de $countrequête , , $expand$filter, $search$select$orderby, , et$top OData pour personnaliser la réponse. $skip n’est pas pris en charge. Les tailles de page par défaut et maximales sont respectivement 100 et 999 objets de groupe. Certaines requêtes sont prises en charge uniquement lorsque vous utilisez l’en-tête ConsistencyLevel défini sur eventual et $count. Pour plus d’informations, voir Fonctionnalités de requête avancées sur les objets d’annuaire.

Pour n’afficher que les groupes Microsoft 365 (les groupes unifiés), appliquez un filtre sur groupTypes :

GET https://graph.microsoft.com/v1.0/groups?$filter=groupTypes/any(c:c+eq+'Unified')

Le $searchparamètre de requête prend en charge la tokenisation uniquement pour les champs displayName et description et requiert l'en-tête ConsistencyLevel. Les champs autres que displayName et description adoptent par défaut le $filterstartswith comportement.

Les propriétés d’extension prennent également en charge les paramètres de requête comme suit :

Type d’extension Commentaires
Extensions de schéma Retourné uniquement avec $select.
Extensions d’ouverture Retourné uniquement avec $expand.
Extensions d’annuaire Renvoyée par défaut.

Si vous souhaitez en savoir plus sur les options de requête OData, veuillez consulter la rubrique relative aux paramètres de requête OData. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Filtrer par types de groupe

Type de groupe Requête d’API
Groupes Microsoft 365 (unifiés) GET/groups?$filter=groupTypes/any(c:c+eq+'Unified')
Groupes de sécurité GET/groups?$filter=mailEnabled eq false&securityEnabled eq true
Groupes de sécurité à extension messagerie OBTENIR/groups?$filter=NOT groupTypes/any(c:c eq 'Unified') and mailEnabled eq true and securityEnabled eq true&$count=true **
Groupes de distribution OBTENIR/groups?$filter=NOT groupTypes/any(c:c eq 'Unified') and mailEnabled eq true and securityEnabled eq false&$count=true **

** : Cet exemple n’est pris en charge qu’avec les fonctionnalités de requête avancées.

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et les autorisations.
ConsistencyLevel éventuellement. Cet en-tête et cet $count sont requis lors de l’utilisation de $search, ou dans une utilisation spécifique de $filter. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Corps de la demande

N’indiquez pas le corps de la demande pour cette méthode.

Réponse

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et une collection d’objets group dans le corps de la réponse. La réponse inclut uniquement les propriétés par défaut de chaque groupe.

Exemples

Exemple 1 : obtenir une liste de groupes

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/v1.0/groups

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés par défaut sont renvoyées pour chaque groupe dans un appel réel.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups",
  "value": [
    {
      "id": "45b7d2e7-b882-4a80-ba97-10b7a63b8fa4",
      "deletedDateTime": null,
      "classification": null,
      "createdDateTime": "2018-12-22T02:21:05Z",
      "description": "Self help community for golf",
      "displayName": "Golf Assist",
      "expirationDateTime": null,
      "groupTypes": [
        "Unified"
      ],
      "isAssignableToRole": null,
      "mail": "golfassist@contoso.com",
      "mailEnabled": true,
      "mailNickname": "golfassist",
      "membershipRule": null,
      "membershipRuleProcessingState": null,
      "onPremisesLastSyncDateTime": null,
      "onPremisesSecurityIdentifier": null,
      "onPremisesSyncEnabled": null,
      "preferredDataLocation": "CAN",
      "preferredLanguage": null,
      "proxyAddresses": [
        "smtp:golfassist@contoso.com",
        "SMTP:golfassist@contoso.com"
      ],
      "renewedDateTime": "2018-12-22T02:21:05Z",
      "resourceBehaviorOptions": [],
      "resourceProvisioningOptions": [],
      "securityEnabled": false,
      "theme": null,
      "visibility": "Public",
      "onPremisesProvisioningErrors": []
    },
    {
      "id": "d7797254-3084-44d0-99c9-a3b5ab149538",
      "deletedDateTime": null,
      "classification": null,
      "createdDateTime": "2018-11-19T20:29:40Z",
      "description": "Talk about golf",
      "displayName": "Golf Discussion",
      "expirationDateTime": null,
      "groupTypes": [],
      "isAssignableToRole": null,
      "mail": "golftalk@contoso.com",
      "mailEnabled": true,
      "mailNickname": "golftalk",
      "membershipRule": null,
      "membershipRuleProcessingState": null,
      "onPremisesLastSyncDateTime": null,
      "onPremisesSecurityIdentifier": null,
      "onPremisesSyncEnabled": null,
      "preferredDataLocation": "CAN",
      "preferredLanguage": null,
      "proxyAddresses": [
        "smtp:golftalk@contoso.com",
        "SMTP:golftalk@contoso.com"
      ],
      "renewedDateTime": "2018-11-19T20:29:40Z",
      "resourceBehaviorOptions": [],
      "resourceProvisioningOptions": [],
      "securityEnabled": false,
      "serviceProvisioningErrors": [],
      "theme": null,
      "visibility": null,
      "onPremisesProvisioningErrors": []
    }
  ]
}

Exemple 2 : obtenir une liste filtrée de groupes

Cette demande qui filtre la propriété hasMembersWithLicenseErrors ne prend pas en charge la récupération du nombre d’objets retournés.

Demande

GET https://graph.microsoft.com/v1.0/groups?$filter=hasMembersWithLicenseErrors+eq+true&$select=id,displayName

Réponse

Voici un exemple de la réponse qui inclut uniquement les propriétés demandées.

HTTP/1.1 200 OK
Content-type: application/json

{
   "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups(id,displayName)",
   "value":[
      {
         "id":"11111111-2222-3333-4444-555555555555",
         "displayName":"Contoso Group 1"
      },
      {
         "id":"22222222-3333-4444-5555-666666666666",
         "displayName":"Contoso Group 2"
      }
   ]
}

Exemple 3 : obtenir seulement un nombre de groupes

Demande

L’exemple suivant illustre une demande. Cette demande nécessite que l’en-tête ConsistencyLevel soit défini sur eventual, car $count figure dans la demande. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Remarque : Les paramètres de requête $count et $search ne sont actuellement pas disponibles dans les clients Azure AD B2C.

GET https://graph.microsoft.com/v1.0/groups/$count
ConsistencyLevel: eventual

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: text/plain

893

Exemple 4 : utiliser $filter et $top pour obtenir un groupe avec un nom complet commençant par « a », avec un nombre d’objets retournés

Demande

L’exemple suivant illustre une demande. Cette requête nécessite que l’en-tête ConsistencyLevel soit défini sur eventual et la chaîne de requête $count=true, car la requête a les paramètres de requête $orderby et $filter. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Remarque : Les paramètres de requête $count et $search ne sont actuellement pas disponibles dans les clients Azure AD B2C.

GET https://graph.microsoft.com/v1.0/groups?$filter=startswith(displayName, 'a')&$count=true&$top=1&$orderby=displayName
ConsistencyLevel: eventual

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 200 OK
Content-type: application/json

{
   "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
   "@odata.count":1,
   "value":[
      {
         "displayName":"a",
         "mailNickname":"a241"
      }
   ]
}

Exemple 5 : utilisez $search pour obtenir des groupes dont le nom d’affichage contient les lettres « Video » ou une description contenant les lettres « prod », y compris le nombre d’objets renvoyés

Demande

L’exemple suivant illustre une demande. Cette demande nécessite que l’en-tête ConsistencyLevel soit défini sur eventual, car $search figure dans la demande. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Remarque : Les paramètres de requête $count et $search ne sont actuellement pas disponibles dans les clients Azure AD B2C.

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Video" OR "description:prod"&$orderby=displayName&$count=true
ConsistencyLevel: eventual

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 200 OK
Content-type: application/json

{
   "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#groups",
   "@odata.count":1396,
   "value":[
      {
         "displayName":"SFA Videos",
         "mail":"SFAVideos@service.contoso.com",
         "mailNickname":"SFAVideos"
      },
      {
         "description":"Video Production",
         "displayName":"Video Production",
         "mail":"videoprod@service.contoso.com",
         "mailNickname":"VideoProduction"
      }
   ]
}

Exemple 6 : répertorier les groupes de sécurité dynamique

Demande

L’exemple suivant montre une demande qui filtre par membershipRuleProcessingState pour récupérer les groupes dynamiques. Vous pouvez également filtrer par les propriétés groupTypes (c’est-à-dire, $filter=groupTypes/any(s:s eq 'DynamicMembership') ). Cette requête nécessite l’en-tête ConsistencyLevel et la chaîne de requête, car la requête utilise l’opérateur eventual du paramètre de $count=truenot$filter requête. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Remarque : Les paramètres de requête $count et $search ne sont actuellement pas disponibles dans les clients Azure AD B2C.

GET https://graph.microsoft.com/v1.0/groups?$filter=mailEnabled eq false and securityEnabled eq true and NOT(groupTypes/any(s:s eq 'Unified')) and membershipRuleProcessingState eq 'On'&$count=true&$select=id,membershipRule,membershipRuleProcessingState
ConsistencyLevel: eventual

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups(id,membershipRule,membershipRuleProcessingState)",
    "@odata.count": 1,
    "value": [
        {
            "@odata.id": "https://graph.microsoft.com/v2/84841066-274d-4ec0-a5c1-276be684bdd3/directoryObjects/e9f4a701-e7b5-4401-a0ca-5bd5f3cdcf4b/Microsoft.DirectoryServices.Group",
            "id": "e9f4a701-e7b5-4401-a0ca-5bd5f3cdcf4b",
            "membershipRule": "(user.userType -contains \"Guest\" and user.accountEnabled -eq true) or (user.city -eq \"Nairobi\")",
            "membershipRuleProcessingState": "On"
        }
    ]
}

Exemple 7 : répertorier les groupes possédant des licences et obtenir les membres du groupe

Demande

GET https://graph.microsoft.com/v1.0/groups?$select=id,assignedLicenses&$filter=assignedLicenses/any()&$expand=members($select=id,displayName)

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups(id,assignedLicenses,members())",
  "value": [
    {
      "id": "5caf712c-8483-4b3d-8384-d8da988c0ca4",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900"
        }
      ],
      "members": [
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "0952e4c8-432f-4950-a65c-769c45993527"
        },
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "49e373b6-4717-40c6-ad43-843c45a258f0"
        }
      ]
    },
    {
      "id": "aae8ec2a-5a08-4013-ae70-fafbb5c20de1",
      "assignedLicenses": [
        {
          "disabledPlans": [
            "7547a3fe-08ee-4ccb-b430-5077c5041653"
          ],
          "skuId": "18181a46-0d4e-45cd-891e-60aabd171b4e"
        }
      ],
      "members": []
    }
  ]
}