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 se compone de 3 partes:
- Campo
- Es el atributo de usuario que se busca. Por ejemplo,
givenName
- Operador
- Es la 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
- 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 | Value Type | Operadores | Descripción |
---|---|---|---|
No se especificó ningún valor | cadena | Compara con el valor en givenName , familyName o email . |
|
name |
cadena | =, : |
El valor concatenado de givenName y familyName . |
email |
cadena | = , : y :{PREFIX}* |
Las direcciones de correo electrónico del usuario, incluidos sus alias. |
givenName |
cadena | = , : y :{PREFIX}* |
Es el nombre o nombre de un usuario. |
familyName |
cadena | = , : y :{PREFIX}* |
La familia o el apellido del usuario. |
isAdmin |
boolean | = |
Si un usuario tiene privilegios de administrador avanzado |
isDelegatedAdmin |
boolean | = |
Si un usuario ha delegado privilegios de administrador |
isSuspended |
boolean | = |
Si la cuenta de un usuario está suspendida. |
isArchived |
boolean | = |
Si la cuenta de un usuario está archivada. |
im |
cadena | =, : |
ID de la red de IM. |
externalId |
cadena | =, : |
Es el valor del ID externo. |
manager |
cadena | = |
Es la dirección de correo electrónico del administrador de un usuario, ya sea directamente o en la cadena de administración. |
managerId |
cadena | = |
Es el ID del administrador de un usuario, ya sea directamente o en la cadena de administración. |
directManager |
cadena | = |
Es la dirección de correo electrónico del administrador directo de un usuario. |
directManagerId |
cadena | = |
Es el ID del administrador directo de un usuario. |
address |
cadena | : |
Coincide con todos los campos de dirección. |
addressPoBox |
cadena | =, : |
Un apartado postal. |
addressExtended |
cadena | =, : |
Una dirección extendida, como una que incluya una subregión. |
addressStreet |
cadena | =, : |
Una dirección. |
addressLocality |
cadena | =, : |
Es un pueblo o una ciudad de la dirección. |
addressRegion |
cadena | =, : |
Es una provincia o estado abreviado. |
addressPostalCode |
cadena | =, : |
Es un código postal. |
addressCountry |
cadena | =, : |
Un país. |
orgName |
cadena | =, : |
El nombre de una organización. |
orgTitle |
cadena | =, : |
Cargo de un usuario dentro de la organización. |
orgDepartment |
cadena | =, : |
Un departamento dentro de la organización. |
orgDescription |
cadena | =, : |
Es la descripción de una organización. |
orgCostCenter |
cadena | =, : |
Es el centro de costos de una organización. |
phone |
cadena | = |
El número de teléfono de un usuario. |
orgUnitPath |
cadena | = |
La ruta completa de una unidad organizativa. Esto coincide con todas las cadenas de unidades organizativas del destino. Por ejemplo, 'orgUnitPath=/' muestra todos los usuarios de la organización. Este campo solo se puede usar cuando viewType=admin_view . |
isEnrolledIn2Sv |
boolean | = |
Si un usuario está inscrito en la Verificación en 2 pasos |
isEnforcedIn2Sv |
boolean | = |
Si se aplica la Verificación en 2 pasos al 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 configurada en true . |
Tipos de valores
Value Type | Esquema equivalente fieldType | Notas |
---|---|---|
cadena | STRING , EMAIL y PHONE |
Rodea con comillas simples ' si la consulta contiene un espacio en blanco. Escapa las comillas simples en las consultas con \' , por ejemplo, 'Valentine\'s Day' . |
boolean | BOOL |
Debe tener un valor de true o false . Solo admite el operador = . |
número | INT64 , DOUBLE |
Debe 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 |
---|---|---|
= |
string, boolean, number, date | 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" . Es compatible con la mayoría de los campos de string (ver arriba). |
: |
cadena | El campo contiene palabras completas dentro del valor, en orden. Por ejemplo, una consulta con givenName:Jane coincide con los usuarios con valores givenName de "Jane" y "Jane Ann" , pero no "Janet" . Una consulta de varias palabras para 'givenName:Mary Ann' coincidiría con los valores "Mary Ann Evans" y "Sarah Mary Ann" , pero no con "Ann Mary" . Es compatible con la mayoría de los campos de string (ver arriba). |
:{PREFIX}* |
cadena | El campo comienza con el valor. Por ejemplo, una consulta con givenName:Jane* coincide con los usuarios con valores givenName de "Jane" , "Jane Ann" y "Janet" , pero no "Sarah Jane" . Solo se admite en un conjunto limitado de campos de string (consulta la sección anterior). No se admite en atributos personalizados. |
:[{MIN},{MAX}] |
número, fecha | El campo está dentro de un rango. Para que haya una coincidencia, el valor del campo debe ser mayor o igual que {MIN} e menor que {MAX} . Los atributos de números personalizados deben especificar un numericIndexingSpec para admitir este operador. |
> |
número, fecha | El campo es mayor que el valor. Los atributos de números 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úmeros personalizados deben especificar un numericIndexingSpec para admitir este operador. |
< |
número, fecha | El campo es menor que el valor. Los atributos de números 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úmeros 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 (saltos de línea incluidos 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 sobre name='Jane'
no muestra resultados para un usuario con givenName='Jane'
y familyName='Smith'
.
name='Jane Smith'
Buscar usuarios con un givenName
O familyName
que contenga un valor
name:'Jane'
Busca usuarios que coincidan con un prefijo de correo electrónico
email:admin*
Buscar todos los administradores avanzados
isAdmin=true
Buscar usuarios cuyos orgTitles
contengan la palabra "Manager"
orgTitle:Manager
Busca usuarios con un administrador en común en su cadena de informes
manager='janesmith@example.com'
Buscar usuarios con el mismo administrador directo
directManager='bobjones@example.com'
Buscar usuarios de un país determinado
addressCountry='Sweden'
Buscar usuarios de una organización específica
orgName='Human Resources'
Buscar administradores de una organización específica
orgName=Engineering orgTitle:Manager
Buscar atributos de usuario personalizados
Busca a todos los empleados que trabajan en un proyecto específico
EmploymentData.projects:'GeneGnomes'
Cómo buscar a todos los empleados de una ubicación específica
EmploymentData.location='Atlanta'
Buscar todos los empleados que tengan un nivel superior al 7
EmploymentData.jobLevel>=7
Buscar todos los empleados cuyos niveles de trabajo sean >= 5 y < 8
EmploymentData.jobLevel:[5,8]
Busca todos los empleados inscritos en la verificación en 2 pasos
isEnrolledIn2Sv=true
Buscar todos los empleados a los que se les haya aplicado la verificación en 2 pasos
isEnforcedIn2Sv=true