Saiba o que são diretórios e LDAP, em que momentos devemos usar um diretório ao invés de um banco de dados relacional, quais vantagens e desvantagens, além de implementações usando OpenLDAP.
[ Hits: 557.365 ]
Por: Francisco jonathan Rebouças Maia em 21/11/2005
Para quem conhece estruturas computacionais chamadas grafos, talvez a
definição de árvore e de vértices já esteja bem clara, mas se você
não sabe o que é isso, vou tentar explicar de uma forma simples e
resumida através de um exemplo usando a própria DIT.
Uma árvore é formada por vértices (no caso da DIT cada vértice é um
registro) e por arestas, que são "linhas" que relacionam dois vértices.
Veja a seguinte DIT:
Figura 1
Nesse exemplo, cada elipse é um vértice da árvore, ou seja, cada
elipse representa um registro da árvore, que é onde as informações
de certo objeto são guardadas. No exemplo, temos o registro
"POP-CE", que pode guardar várias informações, como onde localiza-se
o Pop-ce, quais membros, quais projetos em andamento, etc (mais a
frente explicarei como as informações são armazenadas em cada registro).
Cada linha que relaciona (liga) dois registros é chamada de aresta.
Dessa forma, temos uma aresta entre os registros "RNP" e "POP-CE", outra
entre "POP-CE" e "VOIP", etc. Nesse caso, essas arestas são usadas para
podermos perceber o caráter hierárquico dessa árvore. Veja que
"POP-CE", "POP-RJ", "POP-PE" estão todos abaixo de "RNP", assim como
"VOIP" e "GERENCIA" estão abaixo de "POP-CE".
Tente ver a DIT como se fosse um sistema de pastas (isso é apenas uma
analogia), no qual a pasta principal é a pasta "RNP" e dentro dela estão
as pastas "POP-CE", "POP-RJ" e "POP-PE", dentro da pasta POP-CE estão as
pastas "VOIP" e "GERENCIA", etc.
Assim, já podemos ter uma idéia do que é uma árvore. A DIT é uma árvore
enraizada, pois sempre vamos ter um único registro na parte mais alta da
árvore, registro esse chamado de raiz (no exemplo, a raiz é o registro
"RNP").
O LDAP é basicamente um sistema de diretórios que engloba o
diretório em si (a DIT) e um protocolo também denominado LDAP*
(LightWeight Directory Access Protocol - Protocolo leve de acesso
a diretórios), que é o protocolo que permite o acesso à DIT (sempre
que for me referir ao protocolo LDAP, colocarei um * no final).
O nome do sistema de diretórios ser LDAP se deve ao fato do protocolo
usado para acessar o sistema se chamar LDAP*. O sistema LDAP é derivado
de um sistema de diretórios chamado X.500. O X.500 usava como protocolo
para acessar sua DIT o protocolo DAP (Directory Access Protocol). Mas
quais as diferenças entre o X.500 e o LDAP? O LDAP, como o próprio nome
diz, é mais leve, retirou alguns problemas que haviam no X.500 (como
redundância de dados), mas as principais diferenças estão entre os
protocolos de acesso LDAP* e DAP.
O protocolo DAP era implementado sobre o padrão OSI de sete camadas, o
que o deixava um tanto quanto incompatível e pesado. Já o LDAP* é
implementado sobre o sistema TCP/IP, que atualmente é mundialmente
difundido, o que permite uma boa portabilidade entre os sistemas que
desejam utilizar LDAP, além de possuir um menor overhead que o DAP nos
pacotes enviados.
[1] Comentário enviado por thekind em 21/11/2005 - 15:22h
Excelente artigo, até agora não conseguia entender direito o LDAP mas depois de ler este artigo esse problema acabou, parabéns cara, segue assim, a comunidade agradece :)
[5] Comentário enviado por agk em 23/11/2005 - 13:40h
Muito bom o artigo, bem didático.
Para quem não sabe o LDAP é utilizado para autenticação, catálogo de endereços e tem muitas outras funcionalidades também.
Pode-se utilizar o LDAP para autenticar com o squid, samba, e-mail, enfim são diversas as utilidades dele.
Estou há algum tempo realizando testes com um servidor LDAP, que será o pdc da rede, para autenticar estações GNU/Linux e Windows e também para autenticar o proxy.
[7] Comentário enviado por balani em 24/11/2005 - 13:29h
Parebens pelo artigo, há alguma possibilidade usar o ldap num gw para ser autenticado por usuarios de um dominio controlado pelo win2003, infelizmente tenho que usa-lo no server de dados, mas os dias dele estão contados.......
[10] Comentário enviado por m4sk4r4 em 29/08/2006 - 17:36h
Bacana o artigo,
Tenho uma dúvida aqui no trabalho, temos o OpenLDAP implantado e funcionando.
Nas estações linux e windows os usuários logam-se perfeitamente, a única
diferença é que no windows cada usuário acessam suas pastas na rede sem precisar ficar digitando login e senha toda hora..
É como se as estações linux estivessem fora do dominio.
[13] Comentário enviado por removido em 06/12/2006 - 10:43h
Só para complementar a resposta do "agk" e para esclarecer melhor para o "manser", o LDAP também é usado em esquemas de autenticações de banco de dados. No Oracle, por exemplo, eu tenho que distribuir um arquivo texto com informações sobre as conexões disponíveis para cada cliente da rede. (o famoso "tnsname.ora") Ex: IP, porta, SID, etc... O LDAP dispensa esse trabalho porque os clientes enxergam os dados de conexão mencionados através do diretório LDAP disponível para a rede toda.
[18] Comentário enviado por mtutucv em 25/07/2008 - 09:34h
estava mesmo precisando de configurar o LDAP, Pelo que li achei muito facil agora configurar o LDAP. vejá se escrevas mais alguma coisa do tipo porque isso ficou Legal o proximo pode ficar melhor
[21] Comentário enviado por andersoneugenio em 14/07/2009 - 16:32h
não estou conseguindo alterar a senha dos usuários cadastrados ele sempre dá a mensagem:
ldap_bind:invalid credentials(49) , alguém sabe o que é? acho que poderia ser a senha errada, mas não é.
[22] Comentário enviado por marujo em 24/08/2009 - 11:33h
Rpz... Meus parabens pelo artigo, otimas explanaçoes, sem duvida um documento exelente para pesquisas... Assim fica bem mais facil entender certos conceitos...
[24] Comentário enviado por jnetux em 29/09/2010 - 21:06h
Caro jonathanmaia, obrigado pelo excelente e esclarecedor tutorial.
Tenho só uma dúvida. Na máquina cliente, como faço para o usuário logar caso ela esteja desconectada?
Pois o login do usuário na máquina com LDAP, só é aceito se ela estiver conectada à rede.
Pois, aqui na minha configuração do trabalho, preciso que o usuário acesse a máquina mesmo com o servidor desligado.
Mais uma vez obrigado.
JNetux
[25] Comentário enviado por onilson em 21/04/2011 - 20:04h
amigos desculpa pela minha ignorância, mas eu já li alguns artigos e tutoriais pela internet e mesmo assim eu ainda não consegui entender para que serve o LDAP.Minhas dúvidas são: Para que serve? Que vantagens ele me traz?Quando devo usar?
[26] Comentário enviado por jeff.jno em 18/10/2011 - 16:12h
Pessoal LDap serve de uma maneira bem simplória de dizer para identificar máquinas e objetos na rede.
Cada computador cada usuário podem ser conectados a base Ladp assim quando alguem for usar um recurso de rede, como por exemplo, impressão ou internet ele precisa se identificar na LDap.
Até mesmo rede sem fio vocês podem utilizar a Ldap usando o FreeRadius, OpenLdap.
Serviço de impressão com autenticação de usuário a mesma coisa onde o FreeRadius é o "protocolo" que fornece o usuario e senha para os outros aplicativos sendo a ldap responsável apenas pela estrutura de dados.
O artigo está excelente, agora uma dúvida. Na minha instalação não veio o arquivo sldap.conf tenho apenas o ldap.conf.
Devo fazer essa configuração no arquivo ldap.conf mesmo ou devo criaro sldap.conf?
Outra coisa como eu troco a senha do usuario admin acho que esqueci ela :p
[29] Comentário enviado por acsoprana em 03/06/2017 - 02:48h
Jonatham, muito bom ... mais tenho uma dúvida com relação de como o ldap faz a busca de um usuário que solicitou autenticação.. vc tem a figura que organiza a DIT certo, então levando em consideração este exemplo (registro 2), se eu fosse autenticar um usuário na minha aplicação com base nesta DIT como o Ldap faria a busca??
Registro 2
DN: ou=pop-ce,dc=rnp (identificador único)
RDN: ou=pop-ce (identificador no nível)
Registro 5
DN: cn=voip,ou=pop-ce,dc=rnp (identificador único)
RDN: cn=voip (identificador no nível)
Registro 6
DN: cn=gerencia,ou=pop-ce,dc=rnp
RDN: cn=gerencia
Neste caso como ele faz a busca do usuário? ele percorre toda a raiz do registro 2 indo para os diversos níveis a baixo automaticamente independente dos CN e de onde o usuário foi cadastrado? Ou deve ser passado toda vez que o usuário for autenticar a DN completa a que ele pertence "DN: cn=gerencia,ou=pop-ce,dc=rnp"..?