Saltar para o conteúdo principal
Versão: Próximo

LDAP Search

LDAP Search ( dnRootEntry ; filtro {; escopo {; atributos {; atributoComoArray}}} ) : Object

ParâmetroTipoDescrição
dnRootEntryTextNome distinto da root entry onde a pesquisa começa
filtroTextFiltro de pesquisa LDAP
escopoTextEscopo da pesquisa: "base" (padrão), "one", ou "sub"
atributosText arrayAtributos a capturar
atributoComoArrayBoolean arrayTrue= força atributos a ser retornados como array, False = força atributos a ser retornados como uma variável simples
ResultadoObjectAtributos Chave/Valor

Esse comando não é seguro para thread e não pode ser usado em código adequado.

Descrição

O comando LDAP Search encontra a primeira ocorrência que corresponde aos critérios definidos no servidor LDAP alvo. Este comando deve ser executado em uma conexão com um servidor LDAP aberta com LDAP LOGIN; caso contrário, é devolvido um erro 1003.

Em dnRootEntry, passar o Distinguished Name do elemento raiz do servidor LDAP; a pesquisa irá recomeçar a partir deste elemento.

em Filtro, passar o filtro de pesquisa LDAP para aplicar. A string de filtro deve ser compatível com rfc2225. Você pode passar uma string vazia "" para não filtrar a pesquisa; o "*" é suportado para procurar substrings.

Em escopo, passe uma das seguintes constantes do tema "LDAP":

ConstanteTipoValorComentário
LDAP all levelsCadeiasubProcurar no diretório raiz definido por dnRootEntry e em todos os ramos subdiretórios seguintes
LDAP root and nextCadeiaoneProcura no nível de entrada raiz definido por dnRootEntry e nas entradas diretamente posteriores ao nível
LDAP root onlyCadeiabase

Em atributos, passe um array texto que contenha a lista de todos os atributos LDAP a recuperar a partir das entradas encontradas. Como padrão, se for omitido este parâmetro, todos os atributos se recuperam.

Nota: lembre que os nomes de atributos LDAP distinguen entre maiúsculas e minúsculas. Para mais informação sobre os atributos LDAP, pode consultar esta página que lista todos os atributos disponíveis para MS Active directory.

Como padrão, o comando retorna atributos como um array se se encontram vários resultados, ou como uma variável se for encontrado um só resultado. Os parâmetros opcionais atributosEmArray permitem "forçar" o formato dos atributos retornados num array ou como uma variável para cada atributo definido:

  • Quando passar true em um elemento, o elemento correspondente do parâmetro atributos será retornado em um array. Se for encontrado um único valor, o comando devolve um array com um só elemento.
  • Quando passar false em um elemento, o elemento correspondente do parâmetro atributos será retornado em uma variável simples. Se forem encontradas várias entradas, o comando devolve só o primeiro elemento.

Exemplo 1

Se deseja conseguir o número de telefone do usuário "smith" no diretório da empresa:

 ARRAY TEXT($_tabAttributes;0)
 APPEND TO ARRAY($_tabAttributes;"cn")
 APPEND TO ARRAY($_tabAttributes;"phoneNumber")
 LDAP LOGIN($url;$dn;$pwd)
 $filter:="cn=*smith*"
 $vfound:=LDAP Search($dnSearchRootEntry;$filter;LDAP all levels;$_tabAttributes)
 LDAP LOGOUT

Exemplo 2

Queremos obter um array de todas as entradas que se encontram no atributo "memberOf":

 var $entry : Object
 ARRAY TEXT($_tabAttributes;0)
 ARRAY BOOLEAN($_tabAttributes_asArray;0)
 APPEND TO ARRAY($_tabAttributes;"cn")
 APPEND TO ARRAY($_tabAttributes_asArray;False)
 APPEND TO ARRAY($_tabAttributes;"memberOf")
 APPEND TO ARRAY($_tabAttributes_asArray;True)
 
 LDAP LOGIN($url;$login;$pwd;LDAP password plain text)
 $entry:=LDAP Search($dnSearchRootEntry;"cn=adrien*";LDAP all levels;$_tabAttributes;$_tabAttributes_asArray)
 LDAP LOGOUT
 
 ARRAY TEXT($_arrMemberOf;0)
 OB GET ARRAY($entry;"memberOf";$_arrMemberOf)
  // em $_arrMemberOf temos um array que contém todos os grupos da entrada

Ver também

LDAP
LDAP SEARCH ALL