Puedes buscar usuarios que coincidan con ciertos atributos con el método users.list()
de la API de Directory. Este método acepta el parámetro query
, que es una búsqueda que combina una o más cláusulas de búsqueda. Cada cláusula de búsqueda consta de 3 partes:
- Campo
- Es el atributo de usuario que se busca. Por ejemplo,
givenName
- Operador
- Prueba que se realiza en los datos para proporcionar una coincidencia. Por ejemplo, el operador
:
comprueba si un atributo de texto contiene un valor. - Valor
- Es el contenido del atributo que se prueba. Por ejemplo,
Jane
Para buscar varios campos en una consulta, agrega cada cláusula de búsqueda, separada por un espacio. La operación es un AND
implícito.
Campos
Campo | Tipo de valor | Operadores | Descripción |
---|---|---|---|
No se especificó ningún valor | string | Compara con el valor de givenName , familyName o email . |
|
name |
string | =, : |
El valor concatenado de givenName y familyName . |
email |
string | = , : , :{PREFIX}* |
Las direcciones de correo electrónico del usuario, incluidos los alias |
givenName |
string | = , : , :{PREFIX}* |
Es el nombre de pila o nombre del usuario. |
familyName |
string | = , : , :{PREFIX}* |
El apellido o la familia de un usuario. |
isAdmin |
booleano | = |
Si un usuario tiene privilegios de administrador avanzado |
isDelegatedAdmin |
booleano | = |
Si un usuario delegó privilegios de administrador. |
isSuspended |
booleano | = |
Indica si la cuenta de un usuario está suspendida. |
isArchived |
booleano | = |
Indica si la cuenta de un usuario está archivada. |
im |
string | =, : |
ID de red de MI. |
externalId |
string | =, : |
Es el valor del ID externo. |
manager |
string | = |
Es la dirección de correo electrónico del gerente de un usuario, ya sea directamente o en la cadena de administración. |
managerId |
string | = |
El ID del administrador de un usuario, ya sea directamente o en la cadena de administración |
directManager |
string | = |
Es la dirección de correo electrónico del administrador directo de un usuario. |
directManagerId |
string | = |
El ID del administrador directo de un usuario. |
address |
string | : |
Coincide con todos los campos de dirección. |
addressPoBox |
string | =, : |
Un apartado postal |
addressExtended |
string | =, : |
Una dirección extendida, como una que incluye una subregión. |
addressStreet |
string | =, : |
Una dirección. |
addressLocality |
string | =, : |
Un pueblo o una ciudad de la dirección. |
addressRegion |
string | =, : |
Es una provincia o un estado abreviados. |
addressPostalCode |
string | =, : |
Un código postal. |
addressCountry |
string | =, : |
Un país. |
orgName |
string | =, : |
Un nombre de organización. |
orgTitle |
string | =, : |
Es el título de un usuario dentro de la organización. |
orgDepartment |
string | =, : |
Un departamento dentro de la organización. |
orgDescription |
string | =, : |
Es la descripción de una organización. |
orgCostCenter |
string | =, : |
Es el centro de costos de una organización. |
phone |
string | = |
El número de teléfono de un usuario. |
orgUnitPath |
string | = |
Es la ruta de acceso completa de una unidad organizativa. Esto coincide con todas las cadenas de unidades organizativas del objetivo. Por ejemplo, 'orgUnitPath=/' muestra todos los usuarios de la organización. Este campo solo se puede usar cuando viewType=admin_view . |
isEnrolledIn2Sv |
booleano | = |
Indica si un usuario está inscrito en la verificación en 2 pasos. |
isEnforcedIn2Sv |
booleano | = |
Indica si la verificación en 2 pasos se aplica de manera forzosa para el usuario. |
schemaName.fieldName |
? | ? | Un atributo de usuario personalizado al que se hace referencia mediante su esquema y nombre de campo. El campo debe tener la propiedad indexed establecida en true . |
Tipos de valores
Tipo de valor | fieldType del esquema equivalente | Notas |
---|---|---|
string | STRING , EMAIL , PHONE |
Encierra ' entre comillas simples si la consulta contiene espacios en blanco. Escapa las comillas simples en las consultas con \' , por ejemplo, 'Valentine\'s Day' . |
booleano | BOOL |
Debe tener un valor de true o false . Solo admite el operador = . |
número | INT64 , DOUBLE |
Debes usar un punto como separador decimal y no un separador de miles, por ejemplo, 150430.25 . |
fecha | DATE |
Se especifica en formato AAAA-MM-DD, por ejemplo, 2001-02-15 . |
Operadores
Operador | Tipos de valores admitidos | Notas |
---|---|---|
= |
cadena, booleano, número, fecha | El campo y el valor coinciden exactamente. Por ejemplo, givenName=Jane coincide con todos los usuarios con el atributo givenName "Jane" , pero no con "Jane Ann" . Se admite en la mayoría de los campos de cadena (consulta más arriba). |
: |
string | El campo contiene todas las palabras del valor, en orden. Por ejemplo, una consulta con givenName:Jane coincide con los usuarios que tienen valores givenName de "Jane" y "Jane Ann" , pero no con "Janet" . Una consulta de varias palabras para 'givenName:Mary Ann' coincidiría con los valores de "Mary Ann Evans" y "Sarah Mary Ann" , pero no con "Ann Mary" . Se admite en la mayoría de los campos de cadena (consulta más arriba). |
:{PREFIX}* |
string | El campo comienza con el valor. Por ejemplo, una consulta con givenName:Jane* coincide con los usuarios que tienen valores givenName de "Jane" , "Jane Ann" y "Janet" , pero no con "Sarah Jane" . Solo se admite en un conjunto limitado de campos de cadena (consulta más arriba). No se admite en atributos personalizados. |
:[{MIN},{MAX}] |
número, fecha | El campo está dentro de un rango. Para que coincida, el valor del campo debe ser mayor o igual que {MIN} y menor que {MAX} . Los atributos de número personalizados deben especificar un numericIndexingSpec para admitir este operador. |
> |
número, fecha | El campo es mayor que el valor. Los atributos de número personalizados deben especificar un numericIndexingSpec para admitir este operador. |
>= |
número, fecha | El campo es mayor o igual que el valor. Los atributos de número personalizados deben especificar un numericIndexingSpec para admitir este operador. |
< |
número, fecha | El campo es menor que el valor. Los atributos de número personalizados deben especificar un numericIndexingSpec para admitir este operador. |
<= |
número, fecha | El campo es menor o igual que el valor. Los atributos de número personalizados deben especificar un numericIndexingSpec para admitir este operador. |
Ejemplos
Todas las consultas usan el método users.list
, que tiene una solicitud HTTP similar a la siguiente (se incluyen saltos de línea para facilitar la lectura):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Cómo buscar un usuario por nombre
El campo de consulta name
realiza pruebas en el valor concatenado de givenName
y familyName
. Una consulta para name='Jane'
no muestra resultados para un usuario con givenName='Jane'
y familyName='Smith'
.
name='Jane Smith'
Cómo buscar usuarios con un givenName
O familyName
que contenga un valor
name:'Jane'
Cómo buscar usuarios que coincidan con un prefijo de correo electrónico
email:admin*
Cómo buscar a todos los administradores avanzados
isAdmin=true
Buscar usuarios con orgTitles
que contenga "Administrador"
orgTitle:Manager
Cómo buscar usuarios con un administrador común en su cadena de informes
manager='janesmith@example.com'
Cómo buscar usuarios con el mismo administrador directo
directManager='bobjones@example.com'
Cómo buscar usuarios en un país determinado
addressCountry='Sweden'
Cómo buscar usuarios en una organización específica
orgName='Human Resources'
Cómo buscar administradores en una organización específica
orgName=Engineering orgTitle:Manager
Cómo buscar atributos de usuario personalizados
Buscar a todos los empleados que trabajan en un proyecto específico
EmploymentData.projects:'GeneGnomes'
Cómo buscar a todos los empleados en una ubicación específica
EmploymentData.location='Atlanta'
Buscar a todos los empleados con un nivel de trabajo superior al 7
EmploymentData.jobLevel>=7
Buscar todos los empleados con niveles de trabajo superiores o iguales a 5 y menores que 8
EmploymentData.jobLevel:[5,8]
Cómo buscar a todos los empleados que se inscribieron en la verificación en 2 pasos
isEnrolledIn2Sv=true
Buscar a todos los empleados a los que se les aplicó la verificación en 2 pasos
isEnforcedIn2Sv=true