No LDAP, o que exatamente é um DN de ligação?

12

Escrevi vários códigos que se conectam a servidores LDAP e executam consultas, mas sempre foi para mim um pouco de vodu. Uma coisa que eu realmente não entendo é o conceito de um DN de ligação. Aqui está um exemplo usando a ferramenta de linha de comando ldapsearch 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 parte -D dc=example,dc=com disso? Por que precisamos nos ligar a um determinado local na hierarquia de diretórios? É para estabelecer em qual parte do diretório minhas consultas devem ser aplicadas? Por exemplo. se o nó raiz do diretório for dc=com e tiver dois filhos ( dc=foo e dc=bar ), talvez eu queira que minhas consultas sejam contra a subárvore dc=foo,dc=com e não a subárvore dc=bar,dc=com ?

    
por dirtside 30.07.2014 / 20:41

2 respostas

13

Um DN de ligação é um objeto ao qual você se liga dentro do LDAP para conceder permissões para fazer o que estiver tentando fazer. Algumas (muitas?) Instâncias do LDAP não permitem ligações anônimas ou não permitem que determinadas operações sejam conduzidas com ligações anônimas, portanto, você deve especificar um bindDN para obter uma identidade para executar essa operação.

De uma maneira não técnica semelhante - e sim, isso é um exagero - um banco permitirá que você entre e olhe para as taxas de juros sem dar a eles qualquer tipo de identificação, mas para abrir uma conta ou retirar dinheiro , você tem que ter uma identidade que eles conhecem - essa identidade é o bindDN.

    
por 30.07.2014 / 20:48
22

Não confunda entre o baseDN e o bindDN .

O baseDN de uma pesquisa é o ponto de partida. Onde ele vai começar a procurar. Bastante auto-explicativo.

O DN bindDN é basicamente a credencial que você está usando para autenticar em um LDAP. Ao usar um bindDN, geralmente vem com uma senha associada a ele.

Em outras palavras, quando você especifica um bindDN, você está usando esse acesso de segurança de objeto para percorrer a árvore LDAP.

Agora, a string 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 cada árvore LDAP define sua raiz com uma string na forma de dc = string, dc = string, ... Mas essas strings não são "caminho" como o resto da árvore.

Exemplos válidos são:

  • dc = exemplo, dc = com
  • dc = mydomain
  • dc = avery, dc = long, dc = lista, dc = de, dc = domínios

Mas, esses elementos-raiz são indivisíveis. Eles se parecem com vários elementos que representam um caminho como o restante da árvore, mas não são . Por exemplo, no último exemplo, um objeto dc = de, dc = domínios não existe.

Imagine nomear sua unidade C: como "D: \ my \ folder \". Cada caminho lá será parecido com "D: \ my \ pasta \ meu \ verdadeiro \ caminho", o que seria confuso, pois o caminho real do arquivo seria \ my \ real \ path correto? Bem, é assim que a base (raiz) de um LDAP se parece, com um conjunto de elementos dc.

Link relevante: link

    
por 30.07.2014 / 22:50

Tags