Sobre o LDAP (Lightweight Directory Access Protocol - Protocolo de acesso a diretório leve)
LDAP é um protocolo de padrão da indústria para acessar e visualizar informações sobre usuários e dispositivos. O LDAP permite que você organize e armazene essas informações em um diretório. Um diretório LDAP é dinâmico, pois pode ser atualizado conforme a necessidade e é distribuído, protegendo-o de um único ponto de falha.
Os exemplos a seguir mostram consultas LDAP que podem ser usadas para pesquisar o diretório:
- Obter todas as entradas: (objectClass=*)
- Obter entradas contendo 'bob' em qualquer lugar do nome comum: (cn=*bob*)
- Obter entradas com um nome comum maior ou igual a 'bob': (cn>='bob')
- Obter todos os usuários com um atributo de e-mail: (&(objectClass=user)(email=*))
- Obter todas as entradas de usuários com um atributo de e-mail e um sobrenome igual a 'smith': (&(sn=smith)(objectClass=user)(email=*))
- Obter todas as entradas com um nome comum que comece com 'andy', 'steve' ou 'margaret': (&(objectClass=User)(| (cn=andy*)(cn=steve*)(cn=margaret*)))
- Obter todas as entradas sem um atributo de e-mail: (!(email=*))
A definição formal do filtro de pesquisa é a seguinte (em RFC 1960):
- <filter> ::= '(' <filtercomp> ')'
- <filtercomp> ::= <and> > <or> > <not> > <item>
- <and> ::= '&' <filterlist>
- <or> ::= '|' <filterlist>
- <not> ::= '!' <filter>
- <filterlist> ::= <filter> > <filter> <filterlist>
- <item> ::= <simple> > <present> > <substring>
- <simple> ::= <attr> <filtertype> <value>
- <filtertype> ::= <equal> > <approx> > <ge> > <le>
- <equal> ::= '='
- <approx> ::= '~='
- <ge> ::= '>='
- <le> ::= '<='
- <present> ::= <attr> '=*'
- <substring> ::= <attr> '=' <initial> <any> <final>
- <initial> ::= NULL > <value>
- <any> ::= '*' <starval>
- <starval> ::= NULL > <value> '*' <starval>
- <final> ::= NULL > <value>
O token <attr> é uma string de caracteres que representa um Tipo de atributo. O token <value> é uma string de caracteres que representa um Valor de atributo cujo formato é definido pelo serviço de diretório subjacente.
Se o <value> precisar conter um dos caracteres * ou ( or ), use uma barra invertida (\) antes do caractere.