Partager via


Répertorier des utilisateurs

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Récupérez la liste des objets user. Cette API retourne également des objets agentUser .

Cette opération retourne par défaut uniquement un sous-ensemble des propriétés les plus couramment utilisées pour chaque utilisateur et agentUser. 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 et spécifiez les propriétés dans une option de requête OData $select.

Importante

Les utilisateurs invités ne peuvent pas appeler cette API. Pour plus d’informations sur les autorisations des utilisateurs membres et invités, consultez Quelles sont les autorisations utilisateur par défaut dans Microsoft Entra ID ?.

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

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

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

Type d’autorisation Autorisation avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) User.ReadBasic.All User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application User.Read.All User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

Autorisations pour des scénarios spécifiques

  • User-Mail.ReadWrite.All est l’autorisation la moins privilégiée pour lire et écrire la propriété otherMails ; permet également de lire certaines propriétés liées à l’identificateur sur l’objet utilisateur.
  • User-PasswordProfile.ReadWrite.All est l’autorisation la moins privilégiée pour lire et écrire des propriétés liées à la réinitialisation de mot de passe ; permet également de lire certaines propriétés liées à l’identificateur sur l’objet utilisateur.
  • User-Phone.ReadWrite.All est l’autorisation la moins privilégiée pour lire et écrire les propriétés businessPhones et mobilePhone ; permet également de lire certaines propriétés liées à l’identificateur sur l’objet utilisateur.
  • User.EnableDisableAccount.All + User.Read.All est la combinaison d’autorisations la moins privilégiée pour lire et écrire la propriété accountEnabled .

Requête HTTP

L’URL suivante retourne une liste d’objets user et agentUser , avec des objets agentUser contenant une propriété @odata.type de #microsoft.graph.agentUser.

GET /users

Paramètres facultatifs de la requête

Cette méthode prend en charge les paramètres de requête OData pour vous aider à personnaliser la réponse :

  • $count, $expand, $filter, $orderby, $search, $select, $top. $skip n’est pas pris en charge.
  • Pour filtrer les utilisateurs de l’agent à partir du jeu de résultats, utilisez la isof fonction : $filter=isof('microsoft.graph.agentUser') retourne les utilisateurs de l’agent uniquement tandis que $filter=not isof('microsoft.graph.agentUser') exclut les utilisateurs de l’agent.
  • Limites de taille de page : La taille de page par défaut est de 100 objets. La taille de page maximale est de 999 objets, sauf si vous utilisez $select=signInActivity ou $filter=signInActivity, la taille de page maximale est de 500.
  • Certaines requêtes nécessitent que l’en-tête ConsistencyLevel soit défini sur eventual et $count. Pour plus d’informations, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.
  • Les $count paramètres et $search ne sont pas disponibles dans Azure locataires AD B2C.

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

Type d’extension Commentaires
onPremisesExtensionAttributes 1-15 Retourné uniquement avec $select. Prend en charge $filter (eq, ne, et eq sur les valeurs null).
Extensions de schéma Retourné uniquement avec $select. Prend en charge $filter (eq, ne, et eq sur les valeurs null).
Extensions d’ouverture Retourné uniquement avec $expand, c’est-à-dire, users?$expand=extensions.
Extensions d’annuaire Retourné uniquement avec $select. Prend en charge $filter (eq, ne, et eq sur les valeurs null).

Pour les objets agentUser, les propriétés non applicables sont toujours null.

Certaines propriétés ne peuvent pas être retournées dans une collection d’utilisateurs. Les propriétés suivantes sont uniquement prises en charge lors de la récupération d’un seul utilisateur : aboutMe, birthday, hireDate, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, mailboxSettings.

Les propriétés suivantes ne sont pas prises en charge dans les comptes Microsoft personnels et sont toujours null: aboutMe, birthday, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, streetAddress.

En-têtes de demande

En-tête Valeur
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
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 200 OK code de réponse et une collection d’objets user et agentUser dans le corps de la réponse. Les objets agentUser incluent une propriété @odata.type avec la valeur #microsoft.graph.agentUser permettant de les différencier des objets utilisateur.

La tentative d’utilisation $select sur la /users collection pour récupérer des propriétés qui ne peuvent pas être retournées dans une collection (par exemple, la requête ../users?$select=aboutMe) retourne un 501 Not Implemented code d’erreur.

Exemples

Exemple 1 : obtenir tous les utilisateurs

Demande

L’exemple suivant illustre une demande. La réponse inclut les utilisateurs de l’agent.

GET https://graph.microsoft.com/beta/users
GET https://graph.microsoft.com/beta/users

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

{
  "value":[
    {
      "displayName":"contoso1",
      "mail":"'contoso1@gmail.com",
      "mailNickname":"contoso1_gmail.com#EXT#",
      "otherMails":["contoso1@gmail.com"],
      "proxyAddresses":["SMTP:contoso1@gmail.com"],
      "userPrincipalName":"contoso1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Exemple 2 : Obtenir uniquement les utilisateurs de l’agent

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/beta/users/microsoft.graph.agentUser

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

{
  "value":[
    {
      "@odata.type":"#microsoft.graph.agentUser",      
      "displayName":"contoso1",
      "mail":"'contoso1@gmail.com",
      "mailNickname":"contoso1_gmail.com#EXT#",
      "otherMails":["contoso1@gmail.com"],
      "proxyAddresses":["SMTP:contoso1@gmail.com"],
      "userPrincipalName":"contoso1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Exemple 3 : Obtenir un compte d’utilisateur à l’aide d’un nom de connexion

Trouvez un compte d’utilisateur à l’aide d’un nom de connexion (également appelé compte local).

Remarque : lorsque vous filtrez pour un issuerAssignedId, vous devez fournir l’émetteur et la fonction issuerAssignedId. Toutefois, la valeur de l’émetteur est ignorée dans certains scénarios. Pour plus d’informations sur le filtrage des identités, consultez le type de ressource objectIdentity.

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/beta/users?$select=displayName,id&$filter=identities/any(c:c/issuerAssignedId eq 'j.smith@yahoo.com' and c/issuer eq 'My B2C tenant')

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

{
  "value": [
    {
      "displayName": "John Smith",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    }
  ]
}

Exemple 4 : Obtenir des utilisateurs invités (B2B) à partir d’un locataire ou d’un domaine spécifique par userPrincipalName

Demande

L’exemple suivant illustre une demande. La valeur userPrincipalName pour les utilisateurs invités (B2B Collaboration) contient toujours l’identificateur « #EXT# ». Par exemple, le userPrincipalName d’un utilisateur dans son locataire d’origine est AdeleV@adatum.com. Lorsque vous invitez l’utilisateur à collaborer dans votre locataire, contoso.com, son userPrincipalName dans votre locataire est « AdeleV_adatum.com#EXT#@contoso.com ».

Cette requête nécessite que l’en-tête ConsistencyLevel soit défini sur eventual et la $count=true chaîne de requête, car la requête inclut l’opérateur endsWith. Pour plus d’informations sur l’utilisation de ConsistencyLevel et $count, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

NOTE: Vous devez encoder le caractère réservé « # » dans la valeur userPrincipalName en tant que « %23 » dans l’URL de la requête. Pour plus d’informations, consultez Encodage de caractères spéciaux.

GET https://graph.microsoft.com/beta/users?$select=id,displayName,mail,identities&$filter=endsWith(userPrincipalName,'%23EXT%23@contoso.com')&$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/beta/$metadata#users(id,displayName,mail,identities)",
    "@odata.count": 2,
    "value": [
        {
            "id": "39807bd1-3dde-48f3-8165-81ddd4e46de0",
            "displayName": "Adele Vance",
            "mail": "AdeleV@adatum.com",
            "identities": [
                {
                    "signInType": "userPrincipalName",
                    "issuer": "contoso.com",
                    "issuerAssignedId": "AdeleV_adatum.com#EXT#@cntoso.com"
                }
            ]
        }
    ]
}

Exemple 5 : Répertorier l’heure de la dernière connexion des utilisateurs avec un nom d’affichage spécifique

Demande

L’exemple suivant illustre une demande.

Remarque

  • Les détails de la propriété signInActivity nécessitent une licence Microsoft Entra ID P1 ou P2 et l’autorisation AuditLog.Read.All .
  • Lorsque vous spécifiez ou $filter=signInActivity lorsque vous répertoriez $select=signInActivity des utilisateurs, la taille de page maximale pour $top est de 500. Les requêtes avec $top un ensemble supérieur à 500 pages retournent avec jusqu’à 500 utilisateurs. La propriété signInActivity prend en charge $filter (eq, ne, not, ge, le), mais pas avec d’autres propriétés filtrables.
GET https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity

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/beta/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity",
  "value": [
    {
      "displayName": "Eric Solomon",
      "signInActivity": {
        "lastSignInDateTime": "2021-07-29T15:53:27Z",
        "lastSignInRequestId": "f3149ee1-e347-4181-b45b-99a1f82b1c00",
        "lastNonInteractiveSignInDateTime": "2021-07-29T17:53:42Z",
        "lastNonInteractiveSignInRequestId": "868efa6a-b2e9-40e9-9b1c-0aaea5b50200",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

Exemple 6 : Répertorier la dernière heure de connexion des utilisateurs dans un intervalle de temps spécifique

Demande

L’exemple suivant illustre une demande.

Remarque

Les détails de la propriété signInActivity nécessitent une licence Microsoft Entra ID P1 ou P2 et l’autorisation AuditLog.Read.All .

GET https://graph.microsoft.com/beta/users?$filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z

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/beta/users?filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": "",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-07-29T15:53:27Z",
        "lastSignInRequestId": "f3149ee1-e347-4181-b45b-99a1f82b1c00",
        "lastNonInteractiveSignInDateTime": "2021-07-29T17:53:42Z",
        "lastNonInteractiveSignInRequestId": "868efa6a-b2e9-40e9-9b1c-0aaea5b50200",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

Exemple 7 : Obtenir uniquement le nombre d’utilisateurs

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/beta/users/$count
ConsistencyLevel: eventual

Réponse

L’exemple suivant illustre la réponse.

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

893

Exemple 8 : utiliser $filter et $top pour obtenir un utilisateur dont le nom d’affichage commence par « a », y compris le 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/beta/users?$filter=startswith(displayName,'a')&$orderby=displayName&$count=true&$top=1
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/beta/$metadata#users",
  "@odata.count":1,
  "value":[
    {
      "displayName":"a",
      "mail":"a@contoso.com",
      "mailNickname":"a_contoso.com#EXT#",
      "otherMails":["a@contoso.com"],
      "proxyAddresses":["SMTP:a@contoso.com"],
      "userPrincipalName":"a_contoso.com#EXT#@contoso.com"
    }
  ]
}

Exemple 9 : Utiliser $filter pour obtenir tous les utilisateurs avec un message qui se termine par « »,a@contoso.com y compris un nombre d’objets retournés, avec les résultats classés par userPrincipalName

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, et et utilise également l’opérateur endsWith. 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/beta/users?$filter=endswith(mail,'a@contoso.com')&$orderby=userPrincipalName&$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/beta/$metadata#users",
  "@odata.count": 1,
  "value": [
    {
      "displayName": "Grady Archie",
      "givenName": "Grady",
      "jobTitle": "Designer",
      "mail": "GradyA@contoso.com",
      "userPrincipalName": "GradyA@contoso.com",
      "id": "e8b753b5-4117-464e-9a08-713e1ff266b3"
      }
    ]
}

Exemple 10 : Utiliser $search pour obtenir des utilisateurs avec des noms d’affichage qui contiennent les lettres « wa », y compris le nombre d’objets retourné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/beta/users?$search="displayName:wa"&$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/beta/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "mailNickname":"oscward",
      "userPrincipalName":"oscarward@contoso.com"
    }
  ]
}

Exemple 11 : Utiliser $search pour obtenir des utilisateurs avec des noms d’affichage qui contiennent les lettres « wa » ou les lettres « ad », y compris un nombre d’objets retourné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/beta/users?$search="displayName:wa" OR "displayName:ad"&$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/beta/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "mailNickname":"oscward",
      "userPrincipalName":"oscarward@contoso.com"
    },
    {
      "displayName":"contosoAdmin1",
      "mail":"'contosoadmin1@gmail.com",
      "mailNickname":"contosoadmin1_gmail.com#EXT#",
      "proxyAddresses":["SMTP:contosoadmin1@gmail.com"],
      "userPrincipalName":"contosoadmin1_gmail.com#EXT#@contoso.com"
    }
  ]
}

Exemple 12 : Utiliser $filter pour obtenir des utilisateurs auxquels une licence spécifique est attribuée

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/beta/users?$select=id,mail,assignedLicenses&$filter=assignedLicenses/any(u:u/skuId eq cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46)

Réponse

L’exemple suivant illustre la réponse.

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,mail,assignedLicenses)",
  "value": [
    {
      "id": "cb4954e8-467f-4a6d-a8c8-28b9034fadbc",
      "mail": "admin@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    },
    {
      "id": "81a133c2-bdf2-4e67-8755-7264366b04ee",
      "mail": "DebraB@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    }
  ]
}

Exemple 13 : Obtenir la valeur d’une extension de schéma pour tous les utilisateurs

Dans cet exemple, l’ID de l’extension de schéma est ext55gb1l09_msLearnCourses.

Demande

GET https://graph.microsoft.com/beta/users?$select=ext55gb1l09_msLearnCourses

Réponse

Dans la réponse suivante, la propriété d’extension ext55gb1l09_msLearnCourses de schéma n’est pas assignée dans deux des objets utilisateur.

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(ext55gb1l09_msLearnCourses)",
    "value": [
        {},
        {
            "ext55gb1l09_msLearnCourses": {
                "@odata.type": "#microsoft.graph.ComplexExtensionValue",
                "courseType": "Developer",
                "courseName": "Introduction to Microsoft Graph",
                "courseId": 1
            }
        },
        {}
    ]
}

Remarque : Vous pouvez également appliquer la $filter propriété d’extension de schéma pour récupérer des objets pour lequel une propriété de la collection correspond à une valeur spécifiée. La syntaxe pour cela est /users?$filter={schemaPropertyID}/{propertyName} eq 'value'. Par exemple : GET /users?$select=ext55gb1l09_msLearnCourses&$filter=ext55gb1l09_msLearnCourses/courseType eq 'Developer'. Les opérateurs eq et les not opérateurs sont pris en charge.

Exemple 14 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur

L’exemple suivant montre comment répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé AppCountry avec une valeur égale Canadaà . La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.

Utilisateur n°1

  • Jeu d’attributs : Marketing
  • Attribut : AppCountry
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["India","Canada"]

Utilisateur n°2

  • Jeu d’attributs : Marketing
  • Attribut : AppCountry
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["Canada","Mexico"]

Pour obtenir des affectations d’attributs de sécurité personnalisées, le principal appelant doit avoir le rôle de Lecteur d’affectation d’attributs ou le rôle d’Administrateur d’affectations d’attributs et doit avoir l’autorisation CustomSecAttributeAssignment.Read.All ou CustomSecAttributeAssignment.ReadWrite.All.

Pour obtenir des exemples d’attributions d’attributs de sécurité personnalisées, consultez Exemples : Affecter, mettre à jour, lister ou supprimer des attributions d’attributs de sécurité personnalisées à l’aide de microsoft API Graph.

Demande

GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada'
ConsistencyLevel: eventual

Réponse

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 2,
    "value": [
        {
            "id": "dbaf3778-4f81-4ea0-ac1c-502a293c12ac",
            "displayName": "Jiya",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Datacenter@odata.type": "#Collection(String)",
                    "Datacenter": [
                        "India"
                    ]
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "India",
                        "Canada"
                    ],
                    "EmployeeId": "KX19476"
                }
            }
        },
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Exemple 15 : Répertorier tous les utilisateurs dont la gestion est restreinte

L’exemple suivant montre comment répertorier tous les utilisateurs dont la gestion est restreinte.

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/beta/users?$filter=isManagementRestricted eq true&$select=displayName,userPrincipalName

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/beta/$metadata#users(displayName,userPrincipalName)",
  "value": [
    {
      "displayName": "Adele",
      "userPrincipalName": "Adele@contoso.com"
    },
    {
      "displayName": "Bob",
      "userPrincipalName": "Bob@contoso.com"
    }
  ]
}

Exemple 16 : Utiliser $filter et endsWith pour obtenir des utilisateurs avec un domaine de niveau supérieur spécifié dans otherMails

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.

GET https://graph.microsoft.com/beta/users?$filter=otherMails/any(x:endswith(x,'.edu'))&$count=true
ConsistencyLevel: eventual

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/beta/$metadata#users",
    "@odata.nextLink": "https://graph.microsoft.com/beta/users?$filter=otherMails%2fany(x%3aendswith(x%2c%27.edu%27))&$skiptoken=m~AQAoOzAzNWVkMDQ1MTE5ZjRlMmNiM2Y2ODQzMmM4YzNiOWJiOzswOzA7Ow",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users?$select=signInActivity,cloudLicensing",
    "value": [
        {
            "displayName": "Isaiah Langer",
            "mail": "isaiahl@fineartschool.edu",
            "id": "0012cd20-3890-409e-9db3-afc3055ebe22"
        },
        {
            "displayName": "Adele Vance",
            "mail": "adelev@bellowscollege.edu",
            "id": "0012cd20-3890-409e-9db3-afc3055ebe22"
        }
    ]
}

Exemple 17 : Répertorier tous les utilisateurs sans agent et afficher uniquement le nom complet des utilisateurs

Demande

L’exemple suivant illustre une demande.

GET https://graph.microsoft.com/beta/users?$count=true&$filter=not isof('microsoft.graph.agentUser')&$select=displayName

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/beta/$metadata#users(displayName)",
    "@odata.count": 3,
    "value": [
        {
            "displayName": "Adrian Smith",
            "id": "04b9f5a2-ee41-4d0e-b500-8de414d178c9"
        },
        {
            "displayName": "Lewis Richardson",
            "id": "0d03514d-35b0-4ffd-9ed9-d8052757e1c4"
        },
        {
            "displayName": "Fung Lu",
            "id": "146f9fcb-64c9-4b6e-b92f-bd4892fabdcd"
        }
  ]
}