Escrevi vários códigos que se conectam aos servidores LDAP e executam consultas, mas sempre foi um vodu para mim. Uma coisa que eu realmente não entendo é o conceito de um DN de ligação. Aqui está um exemplo usando a ldapsearch
ferramenta de linha de comando disponível no openldap. (Ignore a falta de autenticação.)
ldapsearch -h 1.2.3.4 -D dc=example,dc=com [query]
Qual é o propósito e a função da -D dc=example,dc=com
parte disso? Por que precisamos vincular a um local específico na hierarquia de diretórios? É para estabelecer a qual parte do diretório minhas perguntas devem ser aplicadas? Por exemplo, se o nó raiz do diretório for dc=com
e ele tiver dois filhos ( dc=foo
e dc=bar
), talvez eu queira que minhas consultas sejam contra a dc=foo,dc=com
subárvore e não a dc=bar,dc=com
subárvore?
Não fique confuso entre o baseDN e o bindDN .
O baseDN de uma pesquisa é o ponto de partida. Onde ele começará a pesquisar. Bastante auto-explicativo.
O DN do bindDN é basicamente a credencial que você está usando para se autenticar em um LDAP. Ao usar um bindDN, ele geralmente vem com uma senha associada a ele.
Em outras palavras, quando você especifica um bindDN, está usando o acesso de segurança desse objeto para percorrer a árvore LDAP.
Agora, a cadeia dc = example, dc = com não é o melhor exemplo para um bindDN, pois é um "domínio" para uma árvore LDAP. dc significa componente de domínio e toda árvore LDAP define sua raiz com uma string na forma de dc = string, dc = string, ... Mas essas strings não são um "caminho" como o resto da árvore.
Exemplos válidos são:
Mas, esses elementos raiz são indivisíveis. Eles se parecem com eles são vários elementos que representam um caminho como o resto da árvore, mas eles são não . Por exemplo, no último exemplo, um objeto dc = of, dc = domain não existe.
Imagine nomear sua unidade C: como "D: \ my \ folder \". Todo caminho lá vai parecer algo como "D: \ minha \ pasta \ meu \ real \ caminho", o que seria confuso, pois o caminho real do arquivo seria \ meu \ real \ caminho, certo? Bem, é assim que a base (raiz) de um LDAP se parece, com um conjunto de elementos dc =.
Link relevante: http://docs.oracle.com/cd/E19199-01/816-6400-10/lsearch.html
fonte