Buscar usuarios

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