Vous pouvez rechercher des utilisateurs correspondant à certains attributs à l'aide de la méthode users.list() de l'API Directory. Cette méthode accepte le paramètre query, qui est une requête de recherche combinant une ou plusieurs clauses de recherche. Chaque clause de recherche se compose de trois parties:
- Champ
- Attribut utilisateur recherché. Exemple :
givenName - Opérateur
- Test effectué sur les données pour fournir une correspondance. Par exemple, l'opérateur
:vérifie si un attribut de texte contient une valeur. - Valeur
- Contenu de l'attribut testé. Exemple :
Jane
Pour rechercher dans plusieurs champs d'une requête, ajoutez chaque clause de recherche, séparée par un espace. L'opération est un AND implicite.
Champs
| Champ | Type de valeur | Opérateurs | Description |
|---|---|---|---|
| Aucune option spécifiée | chaîne | Comparez la valeur à celle de givenName, familyName ou email. |
|
name |
chaîne | =, : |
Valeur concaténée de givenName et familyName. |
email |
chaîne | =, :, :{PREFIX}* |
Adresses e-mail de l'utilisateur, y compris les alias |
givenName |
chaîne | =, :, :{PREFIX}* |
Prénom d'un utilisateur. |
familyName |
chaîne | =, :, :{PREFIX}* |
Nom de famille ou nom d'un utilisateur. |
isAdmin |
booléen | = |
Indique si un utilisateur dispose de droits de super-administrateur. |
isDelegatedAdmin |
booléen | = |
Indique si un utilisateur dispose de droits d'administrateur délégués. |
isSuspended |
booléen | = |
Indique si le compte d'un utilisateur est suspendu. |
isArchived |
booléen | = |
Indique si le compte d'un utilisateur est archivé. |
im |
chaîne | =, : |
ID du réseau de messagerie instantanée. |
externalId |
chaîne | =, : |
Valeur de l'ID externe. |
manager |
chaîne | = |
Adresse e-mail du responsable d'un utilisateur, directement ou dans la chaîne de gestion. |
managerId |
chaîne | = |
ID de l'administrateur d'un utilisateur, directement ou dans la chaîne de gestion. |
directManager |
chaîne | = |
Adresse e-mail du responsable direct d'un utilisateur. |
directManagerId |
chaîne | = |
ID de l'administrateur direct d'un utilisateur. |
address |
chaîne | : |
Correspond à tous les champs d'adresse. |
addressPoBox |
chaîne | =, : |
Boîte postale. |
addressExtended |
chaîne | =, : |
Adresse étendue, par exemple incluant une sous-région. |
addressStreet |
chaîne | =, : |
Adresse postale. |
addressLocality |
chaîne | =, : |
Ville de l'adresse. |
addressRegion |
chaîne | =, : |
Abréviation d'un État ou d'une province. |
addressPostalCode |
chaîne | =, : |
Code postal. |
addressCountry |
chaîne | =, : |
Un pays. |
orgName |
chaîne | =, : |
Nom d'une organisation. |
orgTitle |
chaîne | =, : |
Titre de l'utilisateur dans l'organisation. |
orgDepartment |
chaîne | =, : |
Service de l'organisation. |
orgDescription |
chaîne | =, : |
Description d'une organisation. |
orgCostCenter |
chaîne | =, : |
Centre de coûts d'une organisation. |
phone |
chaîne | = |
Numéro de téléphone de l'utilisateur |
orgUnitPath |
chaîne | = |
Chemin d'accès complet d'une unité organisationnelle. Cette valeur correspond à toutes les chaînes d'unités organisationnelles sous la cible. Par exemple, 'orgUnitPath=/' renvoie tous les utilisateurs de l'organisation. Ce champ ne peut être utilisé que lorsque viewType=admin_view. |
isEnrolledIn2Sv |
booléen | = |
Indique si un utilisateur est inscrit ou non à la validation en deux étapes. |
isEnforcedIn2Sv |
booléen | = |
Indique si la validation en deux étapes est appliquée à l'utilisateur. |
schemaName.fieldName |
? | ? | Attribut utilisateur personnalisé, référencé par son schéma et son nom de champ. La propriété indexed du champ doit être définie sur true. |
Types de valeurs
| Type de valeur | fieldType du schéma équivalent | Remarques |
|---|---|---|
| chaîne | STRING, EMAIL, PHONE |
Placez la requête entre guillemets simples ' si elle contient des espaces. Échappez les guillemets simples dans les requêtes avec \', par exemple 'Valentine\'s Day'. |
| booléen | BOOL |
La valeur doit être true ou false. Compatible uniquement avec l'opérateur =. |
| Total | INT64, DOUBLE |
Un point doit être utilisé comme séparateur décimal, et aucun séparateur de milliers, par exemple 150430.25. |
| date | DATE |
Spécifié au format AAAA-MM-JJ, par exemple 2001-02-15. |
Opérateurs
| Opérateur | Types de valeurs acceptés | Remarques |
|---|---|---|
= |
chaîne, booléen, nombre, date | Le champ et la valeur correspondent exactement. Par exemple, givenName=Jane correspond à tous les utilisateurs avec l'attribut givenName "Jane", mais pas à "Jane Ann". Compatible avec la plupart des champs de chaîne (voir ci-dessus). |
: |
chaîne | Le champ contient les mots entiers de la valeur, dans l'ordre. Par exemple, une requête avec givenName:Jane correspond aux utilisateurs dont les valeurs givenName sont "Jane" et "Jane Ann", mais pas "Janet". Une requête de plusieurs mots pour 'givenName:Mary Ann' correspond aux valeurs "Mary Ann Evans" et "Sarah Mary Ann", mais pas à "Ann Mary". Compatible avec la plupart des champs de chaîne (voir ci-dessus). |
:{PREFIX}* |
chaîne | Le champ commence par la valeur. Par exemple, une requête avec givenName:Jane* établit une correspondance avec les utilisateurs dont la valeur givenName est "Jane", "Jane Ann" et "Janet", mais pas "Sarah Jane". Compatible uniquement avec un nombre limité de champs de chaîne (voir ci-dessus). Non disponible pour les attributs personnalisés. |
:[{MIN},{MAX}] |
numéro, date | Le champ se situe dans une plage. Pour qu'il y ait correspondance, la valeur du champ doit être supérieure ou égale à {MIN} et inférieure à {MAX}. Les attributs de nombre personnalisés doivent spécifier un numericIndexingSpec pour être compatibles avec cet opérateur. |
> |
numéro, date | Le champ est supérieur à la valeur. Les attributs de nombre personnalisés doivent spécifier un numericIndexingSpec pour être compatibles avec cet opérateur. |
>= |
numéro, date | La valeur du champ est supérieure ou égale à la valeur. Les attributs de nombre personnalisés doivent spécifier un numericIndexingSpec pour être compatibles avec cet opérateur. |
< |
numéro, date | La valeur du champ est inférieure à la valeur. Les attributs de nombre personnalisés doivent spécifier un numericIndexingSpec pour être compatibles avec cet opérateur. |
<= |
numéro, date | Le champ est inférieur ou égal à la valeur. Les attributs de nombre personnalisés doivent spécifier un numericIndexingSpec pour être compatibles avec cet opérateur. |
Exemples
Toutes les requêtes utilisent la méthode users.list, qui comporte une requête HTTP semblable à la suivante (les sauts de ligne sont inclus pour plus de lisibilité):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Rechercher un utilisateur par nom
Le champ de requête name teste la valeur concaténée de givenName et familyName. Une requête pour name='Jane' ne renvoie aucun résultat pour un utilisateur avec givenName='Jane' et familyName='Smith'.
name='Jane Smith'
Rechercher des utilisateurs dont givenName OU familyName contient une valeur
name:'Jane'
Rechercher des utilisateurs correspondant à un préfixe d'adresse e-mail
email:admin*
Rechercher tous les super-administrateurs
isAdmin=true
Rechercher des utilisateurs dont orgTitles contient "Manager"
orgTitle:Manager
Rechercher des utilisateurs ayant un responsable commun dans leur chaîne de reporting
manager='janesmith@example.com'
Rechercher des utilisateurs ayant le même responsable direct
directManager='bobjones@example.com'
Rechercher des utilisateurs dans un pays donné
addressCountry='Sweden'
Rechercher des utilisateurs dans une organisation spécifique
orgName='Human Resources'
Rechercher des administrateurs dans une organisation spécifique
orgName=Engineering orgTitle:Manager
Rechercher des attributs utilisateur personnalisés
Rechercher tous les employés qui travaillent sur un projet spécifique
EmploymentData.projects:'GeneGnomes'
Rechercher tous les employés d'un emplacement spécifique
EmploymentData.location='Atlanta'
Rechercher tous les employés de niveau 7 ou supérieur
EmploymentData.jobLevel>=7
Rechercher tous les employés dont le niveau d'emploi est compris entre 5 et 8
EmploymentData.jobLevel:[5,8]
Rechercher tous les employés qui ont activé la validation en deux étapes
isEnrolledIn2Sv=true
Rechercher tous les employés pour lesquels la validation en deux étapes est obligatoire
isEnforcedIn2Sv=true