Escolar Documentos
Profissional Documentos
Cultura Documentos
Campinas 2006
Introduo
LDAP um protocolo (executado sobre o TCP/IP) cliente-servidor, utilizado para acessar um servio de diretrio. Ele foi inicialmente usado como uma interface para o X.500, mas tambm pode ser usado com autonomia e com outros tipos de servidores de diretrio. Atualmente, vem se tornando um padro, e diversos programas j tm suporte a LDAP. Livros de endereos, autenticao, armazenamento de certificados digitais (S/MIME) e de chaves pblicas (PGP) so alguns dos exemplos onde o LDAP j amplamente utilizado.
Um pouco de histria
O LDAP foi originalmente desenvolvido como um cliente para o X.500, o servio de Diretrio OSI. O X.500 define o Protocolo de Acesso a Diretrio (DAP) para os clientes usarem quando estiverem em contato com servidores de diretrio. O DAP um protocolo pesado, que roda sobre uma camada OSI completa, e precisa de uma quantidade significante de recursos computacionais para ser executado. Tendo isso em vista, pensou-se em criar um protocolo mais leve para que tambm fosse utilizado em mquinas de menor poder computacional, como em desktops convencionais. Ento foram desenvolvidos dois protocolos, o Directory Assistance Service (DAS) e o Directory Interface to X.500 Implemented Efficiently (DIXIE), que foram os predecessores do LDAP, mas que ainda eram muito ligados ao X.500, pois precisavam de um servidor intermedirio para efetuar a traduo desses protocolos para o DAP que se comunicaria com o Diretrio X.500, como demonstrado abaixo:
Ento, a unio de foras da OSI-DS Working Group e da IETF resultou na construo de um novo protocolo, o Lightweight Directory Access Protocol (LDAP), que roda diretamente sobre TCP/IP e fornece a maioria das funcionalidades do DAP, a um custo muito menor, alm de ser muito mais leve. No princpio, a utilizao do LDAP (LDAPv1) era similar ao DAS e ao DIXIE, utilizando um servidor intermedirio e exigindo um servio X.500 completo. A segurana dos dados que trafegavam tambm era uma preocupao, pois todos eram (e ainda so) em formato texto (strings). Ento foi desenvolvido o LDAPv2, com autenticao utilizando o Kerberos v4. Mas ao passar dos anos percebeu-se que os complexos e pesados Diretrios X.500 poderiam ser substitudos por Diretrios mais leves e que no possussem tamanha complexidade que raramente era utilizada. Foi ento que surgiu a idea de desenvolver o lado servidor do LDAP, ou seja, Servios de Diretrios LDAP, que so utilizados at hoje. E tambm foi desenvolvido o LDAPv3 (atual) que possui um suporte muito maior autenticao (compatvel com SASL e TLS) e vrias outras extenses que permitem a adio de novas operaes e controles.
em substituio dos servidores NIS, fornecendo login/senha (autenticao) para usurios Linux/Unix; autenticao para usurios SAMBA; autenticao para servios de email (POP3/IMAP); autenticao para aplicativos groupware (como o MoreGroupware); catlogo com os endereos de email, endereos, telefones, etc. de empregados ou clientes da empresa; soluo de single sign on (SSO), permitindo acesso para vrios ambiente e arquiteturas de software e sistemas operacionais.
Figura 3 - rvore de Diretrio LDAP Apesar de termos entradas para pases, o diretrio no possui uma entidade centralizadora como, por exemplo, o root do Unix. A separao por pases, por exemplo, pode ser til para empresas multinacionais. Uma outra vantagem de um servio de diretrios que os ramos da rvore podem estar em mquinas diferentes. No caso acima, a entrada de cor cinza pode estar em um outro computador, por exemplo. Note que esta caracterstica tambm tpica de servidores DNS.
O servidor LDAP pode ser configurado para verificar as classes (atravs da opo e forar o uso correto dos atributos. Isso, geralmente, uma boa idia. Com a verificao das classes habilitada, ser obrigatria a insero dos atributos objectClass, sn e cn, por exemplo. Quando for definido que uma entrada do Diretrio da classe person, o atributo description ser opcional. Entradas em diretrios podem ter vrias classes diferentes, basta apenas observar os requisitos de atributos de cada classe.
schemacheck)
disponvel nos servidores do LDAPv2, o que fazia com que os clientes adotassem o mtodo bsico de autenticao, ou seja, no-encriptado que era aceito por todos os servidores. Tendo isso em vista, foi desenvolvida uma nova verso do LDAP, o LDAPv3 (atual), que trata a autenticao baseada nos modos de como os servidores so acessados: Servidores LDAPv3 pblicos somente-leitura permitem login annimo, sem senha; Servidores com autenticao usando senhas usa mecanismo SASL DIGEST-MD5; Servidores com autenticao e criptografia de dados usa StartTLS para camada de transporte segura e certificados com chaves pblicas para autenticao de ambos os lados, proporcionando autenticidade, integridade e criptografia dos dados.
O estabelecimento de uma conexo cliente-servidor LDAP acontece, basicamente, em trs passos, onde o cliente: 1. Abre uma conexo TCP com o servidor; 2. Envia uma operao StartTLS, em que os protocolos de camada mais baixa negociam a encriptao e a autenticao segundo a especificao do TLS; 3. Realiza o bind utilizando um mecanismo SASL EXTERNAL caso um certificado tenha sido fornecido durante a negociao TLS, ou outro mecanismo SASL como o DIGEST-MD5, por exemplo.
As operaes LDAP de consulta podem abranger a rvore toda (uma busca com escopo subtree) ou apenas um ramo, sem descer ou subir para os demais. Alm de especificar com filtros quais entradas se deseja encontrar, tambm possvel especificar quais atributos destas entradas esto sendo procurados. Se os atributos no forem especificados, todos sero retornados. Por exemplo, na figura 3 ns poderamos querer pesquisar toda a sub-rvore de diretrio abaixo da entrada Devices, procurando por impressoras com o nome Laser Printer, recuperando a resoluo para cada entrada encontrada. O LDAP permite que voc faa isso facilmente.
Figura 5 - Estabelecimento de conexo, consulta e fechamento de uma conexo LDAP Na segunda etapa, o cliente envia uma mensagem de consulta, contendo um DN para cada consulta. E para cada mensagem, o cliente tambm gera um ID diferente, o qual o servidor utiliza como uma das informaes de resposta, para que o cliente possa identificar a qual requisio de consulta aquela determinada resposta corresponde. O servidor responde enviando o resultado da pesquisa, com uma mensagem por dado encontrado. Se no forem fornecidos dados a serem pesquisados ou se houver algum erro na pesquisa, o servidor pode no enviar as informaes sobre a solicitao desejada. Por fim, o servidor envia uma mensagem indicando que a pesquisa foi concluda (Result code) que inclui a relao dos resultados obtidos, como mostrado abaixo:
Figura 6 Uma simples pesquisa LDAP Note que se o cliente tiver enviado uma outra solicitao de pesquisa sem aguardar pela finalizao da primeira solicitao, no h problema algum, pois todas as mensagem so devidamente identificadas, tornando o LDAP um protocolo ainda mais gil na pesquisa de informaes, pois com uma mesma conexo aberta pode-se realizar vrias consultas ao invs de ter que abrir uma conexo para cada consulta.
Concluso
Percebe-se que o LDAP possui inmeras reas onde pode ser aplicado, pois se trata de um protocolo leve que no exige muitos recursos computacionais e pode ser utilizado desde pequenas empresas at grandes corporaes para integrao de seus inmeros servios. Alm de possuir uma grande escalabilidade, isto , podem ser adicionadas vrias expanses tanto na linha de operaes funcionais quanto em comandos de controle, o LDAP ainda possui vrias opes para a segurana de dados, pois adota, atualmente, um dos frameworks mais utilizados e flexveis da Internet (SASL). Porm, o LDAP deve ser escolhido como soluo e projetado com muito cuidado, pois ele no se trata de uma substituio definitiva a bancos de dados ou outros servios, como servidores FTP, servidores WEB ou sistemas de arquivos. Deve-se analisar muito bem quais so os requisitos do servio onde se pretende empregar o LDAP, pois, talvez, essa no seja a melhor soluo. Pode at funcionar, mas no com uma eficincia satisfatria.
Bibliografia :
Timothy A. Howes - Ph.D., Mark C. Smith, Gordon S. Good Understanding and Deploying LDAP Directory Services, Second Edition 2003 Ed. Addison Wesley Professional. Lightweight Directory Access Protocol Wikipedia http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Understanding LDAP - IBM redbook http://www.redbooks.ibm.com/pubs/pdfs/redbooks/sg244986.pdf Sys Admin Guide for Directory Services ftp://docs-pdf.sun.com/816-4856/816-4856.pdf Introduction to OpenLDAP Directory http://www.openldap.org/doc/admin21/intro.html