OpenLDAP: a chave é a centralização

Este artigo tem por finalidade apresentar os conceitos básicos do OpenLDAP afim de despertar o interesse dos leitores para essa poderosa ferramenta, estimulando-os a buscar mais conhecimento sobre o assunto e posteriormente colocá-lo em prática. Aqui serão mostradas as características do OpenLDAP e seu funcionamento, passando por conceitos como serviço de diretórios, origem, aplicações e segurança.

[ Hits: 109.670 ]

Por: Jaime Ribeiro Junior em 11/12/2008


Do X.500 ao OpenLDAP



Um pouco da história, a origem do LDAP

O X.500 é um padrão de protocolos de serviços de diretórios utilizados em redes de computadores, foi elaborado para trabalhar em cima do modelo OSI e incorporado ao pacote de protocolos do mesmo, ISO/IEC 9594 . Designado para dar suporte ao padrão X.400, que define a troca de mensagens eletrônicas entre os usuários da rede local, onde a função do X.500 é prover serviços de diretórios para rede, centralizando a base de dados dos usuários da rede em um servidor X.500.

O protocolo de acesso a diretórios - DAP (Directory Access Protocol) faz parte das especificações do padrão X.500, foi feito para trabalhar junto a todas as camadas do modelo OSI, e tinha por objetivo definir o acesso de usuários aos serviços de diretórios que seu padrão provia.

Assim como o OSI o X.500 conseqüentemente o DAP foram feitos antes do advento da internet e originalmente não foram preparados para trabalhar com o TCP/IP, visto que segundo Trigo (2007), a aplicação do mesmo além de ser de difícil implementação, gerava aplicações complexas e lentas. Além do mais o estilo da organização da árvore de diretórios do X.500 não foi preparado para a utilização de diretórios distribuídos.

Quando se trata de redes tudo gira em torno dos protocolos, a Internet, e-mail, intranets, transferência de arquivos acessos a diretórios e outros providos pela pilha TCP/IP são todas operações baseadas em protocolos como, HTTP , FTP, UDP , TCP, IP, POP , SMTP e tantas outras siglas terminadas em "P", sendo um conjunto de regras que estabelecem funções específicas.

A grande vantagem da utilização de protocolos se resume na compatibilidade que eles oferecerem tanto entre hardwares como entre softwares de diversos fabricantes, o que os tornaram compatíveis entre si. Um exemplo prático disso é a possibilidade de se estabelecer à comunicação entre Sistemas Operacionais diferentes, ou partindo para o nível de hardware, que é, por exemplo, fazer com que placas de rede de fabricantes distintos possam se comunicar.

Já se é aceito que a implementação do Modelo OSI utiliza uma gama maior de recursos de rede, onde se trafega uma grande quantidade de dados desnecessários, e a pilha TCP/IP por sua vez trabalha de forma mais leve exigindo menos dos recursos da rede, tanto que com a disseminação da internet o TCP/IP passou a ser usado como um padrão internacional. O sucesso foi tanto que os protocolos do X.500 foram adaptados para que as redes TCP/IP pudessem trabalhar com os servidores X.500. Posteriormente percebeu-se a necessidade da criação de protocolos que se encaixassem melhor as suas características.

O LDAP foi criado como uma alternativa ao DAP, para prover acesso aos serviços de diretórios do X.500 pelos protocolos da pilha TCP/IP. O LDAP é mais fácil de ser implementado do que o DAP além de exigir menos dos recursos da rede e memória. Ele foi desenvolvido, e não adaptado como o DAP, para aplicações TCP/IP, sendo assim o LDAP obteve um maior desempenho. Por esses motivos recebeu o nome Lightweight Directory Access Protocol (protocolo leve de acesso a diretórios), que é o nome de seu antecessor acrescentado de Lightweight (leve).

Posteriormente foram criados servidores de diretórios voltados para o TCP/IP e o LDAP. O Slapd (stand-alone LDAP daemon - servidor) foi escolhido como a melhor opção e consolidado. Com sua utilização, passa a se colocar em prática um software provedor de serviços de diretórios específicos para o TCP/IP e o LDAP deixando de lado o X.500 que é uma mera adaptação de um padrão desenvolvido para o modelo OSI. Com isso haverá um ganho em performance e funcionalidades e melhor integração com o LDAP.

Assim sendo o LDAP passou a ser a melhor forma de se obter o acesso a serviços de diretórios e foi padronizado em julho de 1993 no RFC 1487 da IETF (Internet Engineering Task Force - Força-Tarefa de Engenharia da Internet) estando na versão 2.4.12.

O LDAP em prática: OpenLDAP

Cada vez fica mais difícil de encontrar servidores X.500, pois o LDAP possui custo menor de hardware mostrando-se mais fácil de se implementar e possui uma melhor eficiência de funcionamento. Com o modelo OSI enterrado a utilização de um servidor X.500 adaptado ao invés de um servidor LDAP passa a ser uma displicência do administrador da rede, pois pra quem já conhece o funcionamento de X.500 se qualificar para o uso do LDAP fica fácil.

Como já citado o LDAP é o protocolo que rege a comunicação entre usuários e os serviços de diretórios e nada mais. Para que o LDAP seja funcional o mesmo tem que ser integrado com o software servidor de serviços de diretórios (slapd), além de outros softwares que atribuem aos servidores de diretórios diversas funções como, softwares de autenticação de usuário, banco de dados, chaves criptográficas e os demais protocolos de comunicação.

Com o objetivo de facilitar o uso do LDAP a Universidade de Michigan nos Estados Unidos da América desenvolveu inicialmente o OpenLDAP, que por ser um software livre traz com sigo todas as vantagens que um software livre possui, como a rápida ampliação de recursos e correção de bugs . O OpenLDAP é a implementação do LDAP sendo que ele adiciona os recursos necessários para sua utilização. A suíte é composta pelos softwares:
  • Slapd - stand-alone LDAP daemon (servidor);
  • Slurpd - stand-alone LDAP update replication daemon;
  • Syncrepl - Replicação de base é mais flexível e tem mais recursos que o slurpd, mas só funciona nas versões mais novas do OpenLDAP;
  • Bibliotecas de implementação do protocolo LDAP;
  • Utilitários, ferramentas, e amostras clientes.

Segundo Trigo (2007):

As principais características do OpenLDAP são:
  • Suporte a IPv4 e IPv6;
  • Autenticação (Cryrus Sasl-Kerberos V, GSSAPI, Digst-MD5);
  • Controle de acessos;
  • Escolha entre bancos de dados (LDBM e o BerkeleyDB);
  • Capacidade de atender a múltiplos bancos ao mesmo tempo;
  • Alta performance em múltiplas chamadas;
  • Replicação de base.(TRIGO,2007, p. 30).

Pode-se concluir que o OpenLDAP é um pacotes de softwares que trabalham vinculados com o LDAP, e que juntos oferecem um serviço de diretório pratico e seguro, com várias funcionalidades como autenticação de usuário e armazenamento de informações, facilidade de backup, funcionamento em redes TCP/IP versão 4 e 6 entre outros.

Página anterior     Próxima página

Páginas do artigo
   1. Sumário + resumo
   2. Introdução
   3. O que é um diretório, onde ele é aplicado
   4. Do X.500 ao OpenLDAP
   5. O OpenLDAP e a centralização
   6. OpenLDAP e a segurança
   7. Considerações finais + Referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação e configuração do MySQL 4.0.26, Apache 2.0.54, PHP 5.0.4 e PHP-Nuke 7.8 no Slackware 10.1

Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Compiz Fusion no Ubuntu

Mais CLI!

Projetos de software livre descontinuados: um problema com solução

  
Comentários
[1] Comentário enviado por dfsantos em 11/12/2008 - 14:07h

Primeiramente queria parabeniza-lo pelo artigo de otima qualidade e agradecer por ter separado umas horas para fazer esse trabalho de qualidade incontestavel em favor da comunidade. Possuo o livro do Clonil Trigo e estou estudando para exame da LPI exame 301 que aborda o OPENLDAP e concerteza foi muito dificil achar material de qualidade como esse na internet... parabens pelo trabalho e mais uma vez agradeço o esforço em compartilhar seu conhecimento conosco.

Em relação ao a "porem há poucos profissionais no mercado que o dominam. " estarei me empenhando nos estudos para fazer parte destes e assim poder contribuir para que esse numero de profissionais aumente....

[2] Comentário enviado por jaimejr1987 em 11/12/2008 - 14:39h

Obrigado, pelo comentario, quero sempre estar trablhando afim de espor as qualidades das ferramentas livres de alto peso como está.

[3] Comentário enviado por info24hs em 11/12/2008 - 17:28h

Cara não muito bom teu artigo, ja tinha visto esse nome na internet mas não tinha lido sobre, com esse artigo entendi perfeitamente oque significa esse recurso. vou tentar implementar aqui, valeu e parabens!

[4] Comentário enviado por joserribeirojuni em 11/12/2008 - 18:08h

Muito bom esse artigo parabéns !

[5] Comentário enviado por oseasfr em 11/12/2008 - 20:50h

Artigo de qualidade. Parabéns Jayme Jr.

[6] Comentário enviado por rrinfor em 12/12/2008 - 08:55h

Ótimo artigo! trabalho 4 anos com informática, e 3 especificamente com Linux, mas so ouvia falar rapidamente do OpenLDAP, mas ja li o bastante no seu artigo para me interessar e aprender mais sobre ele.

Abraços

[7] Comentário enviado por removido em 13/12/2008 - 12:24h

Excelente... parabéns e continue com artigos desse nível... a comunidade agradece!!!
Se possível, seria interessante um artigo mostrando a parte técnica do OpenLDAP.
Imagino que um OpenLDAP rodando com PostgreSQL 8.3 com replicação de dados seja uma façanha bem interessante pra se testar.
Se eu conseguir algo nessa aventura, postarei um artigo aqui explicando e detalhando os passos de como montar um ambiente deste tipo.
Valeu!!!

[8] Comentário enviado por Mallakka em 26/02/2009 - 11:47h

Jaime,

parabéns pelo ótimo trabalho.
Gostaria de saber, se não for problema, se você teria mais algum material falando sobre OpenLDAP, Samba ou Active Directory. Se o material for seu melhor ainda porque já vi a qualidade dos mesmos =). Estou fazendo um trabalho abordando justamente esses temas, qualquer coisa pode me enviar um email.

Valeu !!!

[9] Comentário enviado por jrosalino em 07/04/2009 - 14:07h

Muito bom o texto, me ajudou a conhecer melhor o LDAP. Mas tenho uma dúvida, o servidor LDAP da minha empresa está instalado em servidor linux utilizando MySQL e temos uma aplicaçao em Visual Basic 6 no windows XP que terá que acessa-lo. A conexão com a fonte de dados necessita de um driver? se necessitar seria qual tipo?

Obrigado

[10] Comentário enviado por jaimejr1987 em 07/04/2009 - 18:36h

ok, vamos entender melhor o assunto... O seu aplicativo VB6 vai acessar a base LDAP diretamente?.... ex: Um servidor de dominio + servidor FTP + Programa de gerencia como o nagios que utiliza a base LDAP para altenticação... Todos esses serviços utizão apenas a base LDAP para buscar nomes de usuario e senha alem de endereço e telefone do usuario. Bem no exemplo acima o uma estação windows xp vai usar o dominio samba, ou seja ele vai utilizar o samba e não o ldap, quem usa o ldap é o samba, o ftp da mesma forma o usuario vai utilizar o ftp não o ldap diretamente pois é o servidor ftp que vai utilizar o ldap e da mesma forma ao fazer um acesso remoto e utilizar um software de gerenciamento via browser vc vai utilizar o software que por sua vez usa o ldap. Bem estou estou querendo chegar no seguinte... Lenbra o que é um SCHEMA bem... todos os softwares acima precisão do seu para poder acessar a base ldap, da mesma forma o software feito em VB vai precisar... a parte do mySQL já ta configurada no ldap ok... se vc ta querendo acessar um dado como login e senha e utiliza-lo para fazer a autenticação no seu software VB6 vc vai precisar de um SCHEMA para ele, se vc estiver querendo acessar informações no BD do LDAP como telefone e endereço, alem da linha de comando existem softwares que faz isso pra vc.... ok... bem... não sei se existe algum SCHEMA para um aplicação VB6, mas vc pode criar um. Ps: não sei criar SQUEMAS utilizo os que já existem... pois aplicações como as que citei acima já tem SCHEMAS prontos na net.... criar um SCHEMA não é facil. Mas vc pode tentar. A parte do dirver seria para que seu software VB6 utiliza-se o My SQL, mas pelo que eu entendi vc que usar a base LDAP que esta utilizando o MySQL para ser armazenada, ou seja como nos exemplos acima hehe... vc vai utilizar é o ldap não o MySQL diretamente... que precisa se comunciar com o MySQL é o LDAP. Ou seja se for isso que eu entendi que vc ta querendo vc vai presisar de um SCHEMA para seu software alem de fazer um acesso na Base ldap remotamente pela rede. Existem algumas configurações de vairam de software para software que deve ser feita no proprio software para usar o LDAP, ex o Samba de ser configurado para usar a base LDAP ao em ves da padão.

Espero ter ajudado, mas se não for essa sua duvida posta outro comentaria explicando melhor a situação

até

by JaimeJR

[11] Comentário enviado por jaimejr1987 em 07/04/2009 - 18:42h

A como na informatica tudo gira e nuca para... caso vc consiga descobrir um geito de acessar a base LDAP pelo seu programa VB6 de outra forma poste aki Ok.

[12] Comentário enviado por jrosalino em 08/04/2009 - 16:50h

Obrigado jaime, eu vou verificar exatemente a condição do LDAP com os gestores para passar informação melhor detalhada. Se conseguir acessar pelo VB6 postarei a forma sim. \(^o^)/

[13] Comentário enviado por lucfab em 21/04/2010 - 15:45h

Parabens Jayme pelo seu Artigo, Será que vc poderia me dar uma dicas de replicação de bases LDAP (Master/Slave), Obrigado Luciano S.


Contribuir com comentário