Pesquisar usuários

Você pode pesquisar usuários que correspondam a determinados atributos com o método users.list() da API Directory. Esse método aceita o parâmetro query, que é uma consulta de pesquisa que combina uma ou mais cláusulas de pesquisa. Cada cláusula de pesquisa é composta de três partes:

Campo
Atributo de usuário pesquisado. Por exemplo, givenName.
Operador
Teste realizado nos dados para fornecer uma correspondência. Por exemplo, o operador : testa se um atributo de texto contém um valor.
Valor
O conteúdo do atributo testado. Por exemplo, Jane.

Para pesquisar vários campos em uma consulta, adicione cada cláusula de pesquisa, separada por um espaço. A operação é um AND implícito.

Campos

Campo Tipo de valor Operadores Descrição
Nenhum especificado string Compare com o valor em givenName, familyName ou email.
name string =, : O valor concatenado de givenName e familyName.
email string =, : e :{PREFIX}* Endereços de e-mail do usuário, incluindo aliases.
givenName string =, : e :{PREFIX}* É o nome ou nome de um usuário.
familyName string =, : e :{PREFIX}* É o sobrenome ou o sobrenome do usuário.
isAdmin boolean = Se um usuário tem privilégios de superadministrador.
isDelegatedAdmin boolean = Se um usuário tem privilégios de administrador delegados.
isSuspended boolean = Se a conta de um usuário está suspensa.
isArchived boolean = Indica se a conta de um usuário está arquivada.
im string =, : ID da rede de mensagens instantâneas.
externalId string =, : Valor do ID externo.
manager string = O endereço de e-mail do gerente de um usuário ou diretamente na cadeia de gerenciamento.
managerId string = O ID do gerente de um usuário diretamente ou acima na cadeia de gerenciamento.
directManager string = O endereço de e-mail do gerente direto de um usuário.
directManagerId string = O ID do gerente direto de um usuário.
address string : Corresponde a todos os campos de endereço.
addressPoBox string =, : Uma caixa postal.
addressExtended string =, : Um endereço estendido, como um que inclua uma sub-região.
addressStreet string =, : Um endereço.
addressLocality string =, : A cidade do endereço.
addressRegion string =, : Uma província ou estado abreviado.
addressPostalCode string =, : É um CEP ou código postal.
addressCountry string =, : Um país.
orgName string =, : Um nome de organização.
orgTitle string =, : É o cargo de um usuário na organização.
orgDepartment string =, : um departamento dentro da organização.
orgDescription string =, : A descrição de uma organização.
orgCostCenter string =, : O centro de custos de uma organização.
phone string = O número de telefone do usuário.
orgUnitPath string = O caminho completo de uma unidade organizacional. Isso corresponde a todas as cadeias de unidades organizacionais no destino. Por exemplo, 'orgUnitPath=/' retorna todos os usuários da organização. Este campo só pode ser usado quando viewType=admin_view.
isEnrolledIn2Sv boolean = Indica se um usuário está inscrito na verificação em duas etapas.
isEnforcedIn2Sv boolean = Define se a verificação em duas etapas é aplicada para o usuário.
schemaName.fieldName ? ? Um atributo de usuário personalizado, referenciado pelo esquema e nome do campo. O campo precisa ter a propriedade indexed definida como true.

Tipos de valor

Tipo de valor Esquema equivalente fieldType Observações
string STRING, EMAIL, PHONE Coloque aspas simples ' se a consulta tiver espaços em branco. Escape de aspas simples em consultas com \', por exemplo, 'Valentine\'s Day'.
boolean BOOL Precisa ter um valor de true ou false. Compatível apenas com o operador =.
number INT64, DOUBLE É necessário usar um ponto como separador decimal e nenhum separador de milhares, por exemplo, 150430.25.
date DATE Especificado no formato AAAA-MM-DD, por exemplo, 2001-02-15.

Operadores

Operador Tipos de valores compatíveis Observações
= string, boolean, number, date O campo e o valor correspondem exatamente. Por exemplo, givenName=Jane corresponde a todos os usuários com o atributo givenName "Jane", mas não "Jane Ann". Compatível com a maioria dos campos de string (confira acima).
: string O campo contém as palavras inteiras dentro do valor, em ordem. Por exemplo, uma consulta com givenName:Jane corresponde usuários com valores givenName de "Jane" e "Jane Ann", mas não de "Janet". Uma consulta de várias palavras para 'givenName:Mary Ann' corresponderia a valores de "Mary Ann Evans" e "Sarah Mary Ann", mas não de "Ann Mary". Compatível com a maioria dos campos de string (confira acima).
:{PREFIX}* string O campo começa com o valor. Por exemplo, uma consulta com givenName:Jane* corresponde usuários com valores givenName de "Jane", "Jane Ann" e "Janet", mas não "Sarah Jane". Compatível apenas com um conjunto limitado de campos de string (confira acima). Incompatível com atributos personalizados.
:[{MIN},{MAX}] número, data O campo está dentro de um intervalo. Para corresponder, o valor do campo precisa ser maior ou igual a {MIN} e menor que {MAX}. Os atributos de número personalizado precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
> número, data O campo é maior que o valor. Os atributos de número personalizado precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
>= número, data O campo é maior ou igual ao valor. Os atributos de número personalizado precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
< número, data O campo é menor que o valor. Os atributos de número personalizado precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
<= número, data O campo é menor ou igual ao valor. Os atributos de número personalizado precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.

Exemplos

Todas as consultas usam o método users.list, que tem uma solicitação HTTP semelhante à seguinte (quebras de linha incluídas para legibilidade):

GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS

Pesquisar um usuário pelo nome

O campo de consulta name testa o valor concatenado de givenName e familyName. Uma consulta para name='Jane' não retorna resultados para um usuário com givenName='Jane' e familyName='Smith'.

name='Jane Smith'

Pesquisar usuários com um givenName OU familyName que contenha um valor

name:'Jane'

Pesquisar usuários que correspondam a um prefixo de e-mail

email:admin*

Pesquisar todos os superadministradores

isAdmin=true

Pesquisar usuários com orgTitles contendo "Administrador"

orgTitle:Manager

Pesquisar usuários com um gerente comum na cadeia de subordinados

manager='janesmith@example.com'

Pesquisar usuários com o mesmo gerente direto

directManager='bobjones@example.com'

Pesquisar usuários em um determinado país

addressCountry='Sweden'

Pesquisar usuários em uma organização específica

orgName='Human Resources'

Pesquisar administradores em uma organização específica

orgName=Engineering orgTitle:Manager

Pesquisar atributos de usuário personalizados

Pesquisar todos os funcionários que trabalham em um projeto específico

EmploymentData.projects:'GeneGnomes'

Pesquisar todos os funcionários em um local específico

EmploymentData.location='Atlanta'

Pesquisar todos os funcionários acima do nível 7

EmploymentData.jobLevel>=7

Pesquisar todos os funcionários com níveis de cargo >= 5 e < 8

EmploymentData.jobLevel:[5,8]

Pesquise todos os funcionários inscritos na verificação em duas etapas

isEnrolledIn2Sv=true

Pesquisar todos os funcionários que ativaram a verificação em duas etapas

isEnforcedIn2Sv=true