Pesquisar usuários

É possível pesquisar usuários que correspondem 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 por três partes:

Campo
Atributo do usuário pesquisado. Por exemplo, givenName.
Operador
Teste que é 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 é uma AND implícita.

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 =, :, :{PREFIX}* Os endereços de e-mail do usuário, incluindo aliases.
givenName string =, :, :{PREFIX}* O nome de batismo ou de registro do usuário.
familyName string =, :, :{PREFIX}* O sobrenome ou sobrenome de um usuário.
isAdmin booleano = Se um usuário tem privilégios de superadministrador.
isDelegatedAdmin booleano = Se um usuário tem privilégios de administrador delegados.
isSuspended booleano = Indica se a conta de um usuário está suspensa.
isArchived booleano = 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, seja diretamente ou na cadeia de gerenciamento.
managerId string = O ID do gerente de um usuário, diretamente ou na cadeia de gerenciamento.
directManager string = O endereço de e-mail do gerente direto de um usuário.
directManagerId string = O ID do administrador 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 inclui uma sub-região.
addressStreet string =, : Um endereço.
addressLocality string =, : Uma cidade do endereço.
addressRegion string =, : Uma província ou estado abreviado.
addressPostalCode string =, : Um código postal ou CEP.
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 =, : Uma descrição da organização.
orgCostCenter string =, : O centro de custo 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 do destino. Por exemplo, 'orgUnitPath=/' retorna todos os usuários na organização. Este campo só pode ser usado quando viewType=admin_view.
isEnrolledIn2Sv booleano = Indica se o usuário está inscrito na verificação em duas etapas.
isEnforcedIn2Sv booleano = Indica se a verificação em duas etapas é aplicada ao usuário.
schemaName.fieldName ? ? Um atributo de usuário personalizado, referenciado pelo esquema e pelo 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 entre aspas simples ' se a consulta tiver espaços em branco. Use \' para escapar de aspas simples em consultas, por exemplo, 'Valentine\'s Day'.
booleano BOOL Precisa ter um valor de true ou false. Somente compatível com o operador =.
number INT64, DOUBLE Use um ponto como separador decimal e nenhum separador de milhar, por exemplo, 150430.25.
data DATE Especificado no formato AAAA-MM-DD, por exemplo, 2001-02-15.

Operadores

Operador Tipos de valor aceitos Observações
= string, booleano, número, data 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". Oferece suporte à maioria dos campos de string (consulte acima).
: string O campo contém as palavras inteiras no valor, em ordem. Por exemplo, uma consulta com givenName:Jane corresponde a usuários com valores givenName de "Jane" e "Jane Ann", mas não "Janet". Uma consulta de várias palavras para 'givenName:Mary Ann' corresponderia aos valores de "Mary Ann Evans" e "Sarah Mary Ann", mas não a "Ann Mary". Oferece suporte à maioria dos campos de string (consulte acima).
:{PREFIX}* string O campo começa com o valor. Por exemplo, uma consulta com givenName:Jane* corresponde a usuários com valores de givenName de "Jane", "Jane Ann" e "Janet", mas não "Sarah Jane". Suporte limitado a um conjunto de campos de string (consulte acima). Não é compatível com atributos personalizados.
:[{MIN},{MAX}] número, data O campo está dentro de um intervalo. Para fazer a correspondência, o valor do campo precisa ser maior ou igual a {MIN} e menor que {MAX}. Os atributos de números personalizados precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
> número, data O campo é maior que o valor. Os atributos de números personalizados precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
>= número, data O campo é maior ou igual ao valor. Os atributos de números personalizados precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
< número, data O campo é menor que o valor. Os atributos de números personalizados precisam especificar um numericIndexingSpec para oferecer suporte a esse operador.
<= número, data O campo é menor ou igual ao valor. Os atributos de números personalizados 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 a esta (quebras de linha incluídas para facilitar a leitura):

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 de 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 correspondem a um prefixo de e-mail

email:admin*

Pesquisar todos os superadministradores

isAdmin=true

Pesquisar usuários com orgTitles contendo "Gerente"

orgTitle:Manager

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

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 gerentes em uma organização específica

orgName=Engineering orgTitle:Manager

Pesquisar atributos personalizados do usuário

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 de cargo 7

EmploymentData.jobLevel>=7

Pesquisar todos os funcionários com níveis de cargo maiores ou iguais a 5 e menores que 8

EmploymentData.jobLevel:[5,8]

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

isEnrolledIn2Sv=true

Pesquisar todos os funcionários que têm a verificação em duas etapas ativada

isEnforcedIn2Sv=true