Rechercher des utilisateurs

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 est composée 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 : teste si un attribut de texte contient une valeur.
Valeur
 : contenu de l'attribut testé. Exemple :Jane

Pour effectuer une recherche 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 d'un utilisateur.
isAdmin booléen = Indique si un utilisateur dispose des droits de super-administrateur.
isDelegatedAdmin booléen = Indique si un utilisateur dispose de droits d'administrateur délégué.
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 IM.
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 hiérarchique.
managerId chaîne = ID du responsable d'un utilisateur, qu'il s'agisse de son responsable direct ou d'un responsable de niveau supérieur.
directManager chaîne = Adresse e-mail du responsable direct d'un utilisateur.
directManagerId chaîne = ID du responsable direct d'un utilisateur.
address chaîne : Correspond à tous les champs d'adresse.
addressPoBox chaîne =, : Boîte postale
addressExtended chaîne =, : Adresse détaillée, par exemple une adresse incluant une sous-région.
addressStreet chaîne =, : Adresse postale.
addressLocality chaîne =, : Ville de l'adresse.
addressRegion chaîne =, : Province ou État abrégé.
addressPostalCode chaîne =, : Un 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 =, : Un service au sein 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. Cela 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 Entourez la requête de 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 =.
nombre INT64, DOUBLE Vous devez utiliser un point comme séparateur décimal et aucun séparateur de milliers (par exemple, 150430.25).
date DATE Spécifiée 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 dont l'attribut givenName est "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' correspondrait 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* correspond aux utilisateurs dont les valeurs givenName sont "Jane", "Jane Ann" et "Janet", mais pas "Sarah Jane". Uniquement disponible pour un ensemble limité de champs de chaîne (voir ci-dessus). Non disponible pour les attributs personnalisés.
:[{MIN},{MAX}] numéro, date Le champ se trouve 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 numériques personnalisés doivent spécifier un numericIndexingSpec pour que cet opérateur soit compatible.
> numéro, date La valeur du champ est supérieure à la valeur. Les attributs numériques personnalisés doivent spécifier un numericIndexingSpec pour que cet opérateur soit compatible.
>= numéro, date La valeur du champ est supérieure ou égale à la valeur. Les attributs numériques personnalisés doivent spécifier un numericIndexingSpec pour que cet opérateur soit compatible.
< numéro, date La valeur du champ est inférieure à la valeur. Les attributs numériques personnalisés doivent spécifier un numericIndexingSpec pour que cet opérateur soit compatible.
<= numéro, date La valeur du champ est inférieure ou égale à la valeur. Les attributs numériques personnalisés doivent spécifier un numericIndexingSpec pour que cet opérateur soit compatible.

Exemples

Toutes les requêtes utilisent la méthode users.list, qui comporte une requête HTTP semblable à la suivante (sauts de ligne inclus pour la lisibilité) :

GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS

Rechercher un utilisateur par son 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 disposant de givenName='Jane' et familyName='Smith'.

name='Jane Smith'

Rechercher les utilisateurs dont le givenName OU le 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 les utilisateurs dont l'adresse orgTitles contient "Manager"

orgTitle:Manager

Rechercher des utilisateurs ayant un responsable commun dans leur chaîne hiérarchique

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 lieu spécifique

EmploymentData.location='Atlanta'

Rechercher tous les employés dont le niveau de poste est supérieur à 7

EmploymentData.jobLevel>=7

Rechercher tous les employés dont le niveau de poste est >= 5 et < 8

EmploymentData.jobLevel:[5,8]

Rechercher tous les employés inscrits à la validation en deux étapes

isEnrolledIn2Sv=true

Rechercher tous les employés pour lesquels la validation en deux étapes est appliquée

isEnforcedIn2Sv=true