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 del usuario que se busca. Por ejemplo,
givenName - Operador
- Prueba que se realiza en los datos para proporcionar una coincidencia. Por ejemplo, el operador
:prueba si un atributo de texto contiene un valor. - Valor
- Es el contenido del atributo que se prueba. Por ejemplo,
Jane
Para buscar en 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 en givenName, familyName o email. |
|
name |
string | =, : |
Es el valor concatenado de givenName y familyName. |
email |
string | =, :, :{PREFIX}* |
Direcciones de correo electrónico del usuario, incluidos los alias |
givenName |
string | =, :, :{PREFIX}* |
Es el nombre de pila o primer nombre del usuario. |
familyName |
string | =, :, :{PREFIX}* |
Apellido del usuario |
isAdmin |
booleano | = |
Indica si un usuario tiene privilegios de administrador avanzado. |
isDelegatedAdmin |
booleano | = |
Indica si un usuario tiene privilegios de administrador delegados. |
isSuspended |
booleano | = |
Indica si la cuenta de un usuario está suspendida. |
isArchived |
booleano | = |
Indica si la cuenta de un usuario está archivada. |
im |
string | =, : |
Es el ID de la red de mensajería instantánea. |
externalId |
string | =, : |
Es el valor del ID externo. |
manager |
string | = |
Es la dirección de correo electrónico del administrador de un usuario, ya sea directamente o en la cadena de administración. |
managerId |
string | = |
Es 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 | = |
Es 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 | =, : |
Es una dirección extendida, como una que incluye una subregión. |
addressStreet |
string | =, : |
Una dirección. |
addressLocality |
string | =, : |
Es la ciudad o el pueblo de la dirección. |
addressRegion |
string | =, : |
Es la abreviatura de una provincia o un estado. |
addressPostalCode |
string | =, : |
Un código postal |
addressCountry |
string | =, : |
Es un país. |
orgName |
string | =, : |
Es el nombre de una organización. |
orgTitle |
string | =, : |
Título de un usuario dentro de la organización |
orgDepartment |
string | =, : |
Es 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 que se encuentran debajo del objetivo. Por ejemplo, 'orgUnitPath=/' devuelve 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 se aplica la verificación en 2 pasos de manera forzosa para el usuario. |
schemaName.fieldName |
? | ? | Es un atributo de usuario personalizado al que se hace referencia por 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 búsqueda 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 |
Debe usar un punto como separador decimal y no debe incluir separadores 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 que tienen el atributo givenName establecido en "Jane", pero no en "Jane Ann". Se admite en la mayoría de los campos de cadena (consulta la información anterior). |
: |
string | El campo contiene las palabras completas dentro del valor, en orden. Por ejemplo, una búsqueda con givenName:Jane coincide con los usuarios que tienen valores de givenName de "Jane" y "Jane Ann", pero no con "Janet". Una búsqueda 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 la información anterior). |
:{PREFIX}* |
string | El campo comienza con el valor. Por ejemplo, una búsqueda con givenName:Jane* coincide con los usuarios que tienen valores de givenName de "Jane", "Jane Ann" y "Janet", pero no con "Sarah Jane". Solo se admite en un conjunto limitado de campos de cadena (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 coincida, el valor del campo debe ser mayor o igual que {MIN} y menor que {MAX}. Los atributos numéricos personalizados deben especificar un numericIndexingSpec para admitir este operador. |
> |
número, fecha | El campo es mayor que el valor. Los atributos numéricos personalizados deben especificar un numericIndexingSpec para admitir este operador. |
>= |
número, fecha | El campo es mayor o igual que el valor. Los atributos numéricos personalizados deben especificar un numericIndexingSpec para admitir este operador. |
< |
número, fecha | El campo es menor que el valor. Los atributos numéricos personalizados deben especificar un numericIndexingSpec para admitir este operador. |
<= |
número, fecha | El campo es menor o igual que el valor. Los atributos numéricos 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 su nombre
El campo de consulta name realiza pruebas sobre el valor concatenado de givenName y familyName. Una búsqueda de name='Jane' no devuelve resultados para un usuario con givenName='Jane' y familyName='Smith'.
name='Jane Smith'
Cómo buscar usuarios con un givenName O un 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 jefe 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
Cómo buscar 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 con un nivel de trabajo superior a 7
EmploymentData.jobLevel>=7
Buscar todos los empleados con niveles de trabajo mayores o iguales a 5 y menores que 8
EmploymentData.jobLevel:[5,8]
Cómo buscar a todos los empleados inscritos en la verificación en 2 pasos
isEnrolledIn2Sv=true
Cómo buscar a todos los empleados que tienen aplicada la verificación en 2 pasos
isEnforcedIn2Sv=true