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 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 avec 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 =.
Nombre 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 un givenName OU un 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