Ao se utilizar o
SLDAP (servidor LDAP, máquina onde o OpenLDAP está instalado), como base para busca de informações, pode-se fazer com que todos os serviços e aplicativos da rede o usem para buscar as informações, de forma em que todos compartilhem uma única árvore. Fazendo com que todos os serviços da rede fiquem integrados a ele, facilitando muito a administração de redes de qualquer tamanho.
Ao se colocar todos os dados da rede em uma única árvore de informações e fazendo com que todos os serviços e aplicativos passem a utilizar o SLDAP, estará se centralizando todos os dados e as buscas dos mesmos, isto é o que se denomina centralização! Onde ela é a chave para a utilização de um estilo que traz facilidade e eficiência na gerência de redes.
Enfocando que centralização é o ato de se utilizar um serviço de diretório na rede fazendo com que todos os outros serviços e softwares que necessitem buscar informações façam todas suas buscas no servidor de diretórios.
Com a utilização da centralização o administrador de redes tornará os serviços e softwares da rede, muito mais práticos e fáceis de se gerenciar, pois ao utilizar está "chave" ele abrirá uma "porta" para uma gerência de forma inovadora, como a autenticação de todos os serviços da rede em uma única base de dados, uma agenda com todos os dados dos usuários que pode ser acessada de qualquer ponto da rede, ou seja, as informações do SLDAP poderão ser utilizadas por qualquer software que venha precisar delas.
Funcionamento do OpenLDAP
Todo tipo de informação pode ser armazenado nos atributos da base do OpenLDAP como nomes, IDs de usuário, fotos, locais de trabalho, senhas, e-mais entre outros. Os responsáveis por determinar quais tipos de entradas são válidas na base do OpenLDAP são arquivos chamados schema, segundo Trigo (2007, p. 24) "schema é como uma planta-baixa, uma definição da estrutura das entradas e dos atributos que podem ser inseridos nelas".
Qualquer software que venha a necessitar da consulta de informações para seu funcionamento, é um forte candidato para a utilização do OpenLDAP, para isso basta que o mesmo tenha um arquivo schema. Criar arquivos schemas é possível, entretanto não é fácil, por isso o OpenLDAP traz com sigo os schemas necessários para a configuração de seus principais recursos. Serviços conhecidos como Samba, FTP, Apache, já possuem schemas prontos disponíveis em repositórios na Internet, se o software que o usuário pretender usar não tiver nenhum schema existente ele poderá criá-lo.
Schemas são registrados e padronizados sob RFCs, segundo Trigo (2007) :
Cada elemento de um schema é identificado por um OID (Object Identifier - Identificadores de Objetos). Por questões de padronização e para evitar ambiguidades, esses Identificadores de Objetos são registrados por uma autoridade específica, a IANA (Internet Assigned Numbers Authority - Autoridade de Atribuição de Números da Internet).
O sistema de numeração de objetos é hierárquico, e a IANA garante que aquele OID é usado apenas por um objeto. O objeto organization, por exemplo, usa o número 2.5.6.4 Este número representa um ramo de uma árvore de numerações, onde cada número separado por um ponto indica um nível da árvore. (TRIGO, 2007, p. 77)
Portanto caso seja necessário criar um schema primeiro deve-se informar o IANA e solicitar um OID para os novos objetos a serem criados e também pegar os OIDs dos objetos já existentes, que serão utilizados no schema, para que não haja um mesmo objeto com mais de um OID, pois no caso da existência de um o solicitante ficará sabendo automaticamente.
Para que os softwares vinculados ao LDAP utilizem os objetos da árvore o schema correspondente deverá conter quais objetos serão usados pelo software e a responsabilidade de adicionar o objeto à árvore ficará sob responsabilidade do administrador.
Vamos supor que temos três serviços que necessitem autenticação e que todos precisem de um objeto "ID de usuário", nos três serviços será o mesmo objeto com o mesmo OID, na árvore de informações existirá também o mesmo objeto com o mesmo OID, assim todos os três serviços compartilharam o objeto "ID de usuário", caracterizando a centralização.
Os serviço de diretório que o OpenLDAP provem, é estabelecido através do Slapd e a comunicação do mesmo com os usuários, serviços e etc é feito através do LDAP. Segundo Trigo (2007) a forma de armazenamento das informações da árvore de diretórios independe do protocolo, podendo variar de um simples arquivo de texto até um banco de dados relacional completo.
Um item de grande importância são os arquivos ldif (ex: arquivo.ldif), estes são arquivos de texto comum e são com eles que o protocolo LDAP faz a importação e exportação de informações da base de dados. Podem ser editados por qualquer editor de texto como o VI, gedit, kedit e outros.
Os bancos de dados nativos do OpenLDAP são o LDBM e o BerkeleyDB sendo eles feitos especificamente para este tipo de serviço. Mas se necessário, o OpenLDAP pode trabalhar com banco de dados relacionais, onde através dele poderá ser feitas buscas e consulta, onde a autenticação para acesso ao banco de dados poderá ser feita através do OpenLDAP, ou seja, será criada a possibilidade de que o OpenLDAP envie dados para o banco de dados e o mesmo também realize pesquisas.
Para que se vincule um banco de dados relacional ao OpenLDAP ele deve ser compilado com suporte a SQL e ao OBDC (Open Data Base Connectivity - Conectividade de Banco de dados aberto), pois banco de dados relacionais dependem o OBDC para estabelecer conexões, além da adição do Schema. TRIGO (2007) destaca, que o OpenLDAP possui suporte para os seguintes banco de dados relacionais: IBMDb2, Mssql, MySQL, Oracle, PostgreSQL, e Timesten.
O OpenLDAP é capaz de atender a múltiplos banco de dados ao mesmo tempo, isso torna possível, caso necessário, utilizar mais de um. Gerando, no entanto, um grande tráfego na rede e exigindo que elas estejam fisicamente preparadas.
Como já enfatizado o OpenLDAP, provém um conjunto de softwares que são implementados juntos ao LDAP e ao Slapd para que SLDAP ser torne funcional, o Cryrus Sasl-Kerberos V, GSSAPI e Digst-MD5 fazem parte da família OpenLDAP e são softwares responsáveis por prover a autenticação de usuários. Estes softwares permitem o OpenLDAP oferecer o serviço de autenticação utilizando a base SLDAP de informações. Assim poderá ser feito como que todos os serviços da rede como FTP, SAMBA, SQUID , APACHE, QMAIL , domínios Windows, e domínios
Linux e diversos outros serviços de redes autentiquem na base do SLDAP e não em bases individuais.
Com o OpenLDAP instalado e configurado um nome de usuário senha poderá ser buscado na base LDAP de qualquer ponto da rede , e o usuário terá acesso normal a todos os serviços que lhe for permitido. O mesmo acontece com a busca de qualquer tipo de informação que poderá ser buscada em qualquer ponto da rede sendo necessário apenas que o usuário que a busque tenha permissão para o mesmo.
Dentre as configurações da OpenLDAP existem entradas responsáveis por definir o nível de acesso de um usuário. Quando um usuário é adicionado à árvore, para que ele tenha acesso a algum serviço da rede, o administrador deve configurar o nível de acesso liberando e restringindo o que for conveniente.
O OpenLDAP trabalha com dois estilos de organização da árvore, uma no estilo X.500, clássico, que não funciona com diretórios distribuídos e outra no estilo DNS que por natureza funciona muito bem com diretórios distribuídos, onde o próprio serviço DNS que é utilizado na internet é feito através de servidores distribuídos pelo mundo todo.
As principais vantagens obtidas com a centralização são:
- Maior facilidade e praticidade e menor probabilidade de falhas ao adicionar ou excluir indivíduos da rede, uma vez que ao se adicionar precisará ser criado apenas um usuário para diversos serviços, e ao excluir um único ID de usuários o administrador estará excluindo o individuo de todos os serviços que ele era vinculado não correndo o risco de esquecer-se de algum e deixar uma brecha de segurança na rede;
- Realização do Backup de apenas um seguimento de informações que conterão todos os dados da rede, facilitando esta tarefa.
- A criação de uma agenda virtual na base centralizada disponibilizando o acesso de qualquer ponto da rede.
- Portabilidade, já que é possível ter acesso aos serviços da rede de qualquer ponto da mesma por qualquer usuário.
- É capaz de prover controle de acesso e transmissão criptografada oferecendo segurança no transporte de dados.
A junção de todas essas vantagens é o trunfo da centralização onde fica provada a sua eficiência.
Aplicações para o OpenLDAP
O OpenLDAP pode ser usado em todo tipo de redes desde as pequenas até as redes corporativas, pois o LDAP consegue atender múltiplas chamadas ao mesmo, tempo em outras palavras ele conseguirá atender vários usuários e requisições de software sem perca de desempenho, visto que OpenLDAP irá até onde o hardware permitir, a nível de tráfego da rede e de processamento do servidor.
Preferencialmente o OpenLDAP deve ser instalado no início da utilização da rede e todos os dados dela, precisam ser armazenados nele, mas nada impede que o OpenLDAP seja implementado em uma rede já existente, o problema é que depois toda a base de dados tem que ser movida para a base do SLDAP, imagine um sistema com milhares ou milhões de usuários. Existem aplicações que fazem este trabalho, não sendo necessário fazê-lo manualmente, mas o processo mesmo automatizado leva algum tempo dependendo da quantidade de informação que será copiada para base do SLDAP, obviamente o backup dos dados precisa ser feito antes para prevenir alguma perda.
Para realizar buscas através do terminal o LDAP utiliza o comando ldapsearch onde pode ser feitas pesquisas bem elaboradas através de filtros de pesquisa. Claro que buscas através do terminal e configuração manual de arquivos ldif dentre outras aplicações não muito "amigáveis" são apenas a parte grossa da utilização, pois existem diversos softwares feitos para auxiliar na utilização e administração do OpenLDAP.
Para pessoas que não gostam de sofrer em um terminal, temos aplicativos gerenciadores dos dados do SLDAP, que facilitam a utilização do mesmo depois de implementado, adicionar ou excluir, fazer pesquisar e consultas, se tornam tarefas praticas. Sendo que estes softwares podem ser instalados a parte e se tendo muitas opções, segue abaixo alguns exemplos extraídos de Trigo(2007):
- GQ, ótima ferramenta para testar o servidor LDAP e para incluir e excluir dados.
- Luma é um bom programa de gerenciamento de entradas de diretórios.
- DirectoryAssistant, ferramenta que inclui e pesquisa informações. (TRIGO, 2007, p. 84,85 e 86).
Existem outras ferramentas algumas piores, outras muito melhores do que as citadas acima, no site www.freshmeat.com como:
- Eye Of Newt
- Jxplore
- LDAP Account Manger
- LDAP User Manger for the Web
- phpLDAPadimin
- Gosa
- Kdiradm
- Swiss Army LDAP Tool
O OpenLDAP pode ser usado com diretórios distribuídos, basta que devidamente configurado para isso, onde ele terá que estar trabalhando com o estilo DNS de organização da árvore. Assim teremos mais de um SLDAP, onde existirão dados na árvore responsáveis por indicar as direções das outras árvores pertencentes aos outros SLDAP, formando logicamente uma árvore única .
Para entender melhor a aplicação de um Servidor LDAP distribuído considere a existência de uma empresa que possui uma matriz e três filiais espalhadas por cidades distintas, onde está empresa usa através do OpenLDAP a centralização.
Ela tanto em sua matriz como em suas filiais possui uma rede estruturada e os servidores contam com um backbone gigabit que evitará que o intenso tráfego que chega até ele faça esse ponto da rede virar um gargalo e que as filiais manterão a comunicação via meios externos como a internet através de uma VPN (Virtual Private Network - Rede privada Virtual) ou outro tipo canal dedicado de comunicação oferecido pela provedora de Internet.
Teremos duas analogias uma em que o SLDAP é distribuído entre a matriz e filiais e outra em que ele fica apenas na matriz ou mesmo distribuído todos os SLDAP ficam na matriz.
Se o SLDAP não for distribuído, teremos o seguinte cenário, todos os dados de clientes, funcionários, empresas terceirizadas entre outras estarão na base centralizada, e todas as filiais estão constantemente buscando informações no SLDAP da matriz de forma em que esse se torna um serviço crítico e indispensável para o funcionamento da empresa fazendo com que o SLDAP sofra com a sobrecarga de processos devido ao alto número de requisições.
Com isso teremos um problema, pois devido ao alto tráfego de dados o tempo de resposta do SLDAP em relação às filiais se tornará muito demorado devido ao meio de comunicação entre filial e matriz que é lento em comparação com uma rede local, fazendo com que a própria qualidade do serviço da empresa fique prejudicada.
Mesmo que se usem Servidores LDAP distribuídos dentro da matriz isso só irá aliviar para o servidor, pois o processamento de dados e o tráfego de dados do mesmo ficaram divididos, melhorando a qualidade de serviço do servidor, mas não resolverá o problema das filiais. Resolverá o problema de sobrecarga no servidor, mas não eliminará o gargalo por onde os dados enviados pelas filiais trafegam.
Agora nosso cenário é diferente, temos um servidor LDAP distribuído, um SLDAP em cada filial e um SLDAP central na Matriz, assim cada filial manterá seus dados em seu próprio SLDAP realizando a maioria das buscas no servidor local e buscas externas como informações da matriz ou de outras filiais continuariam sendo feitas através do SLDAP da Matriz, pois se devidamente configurado quando uma pesquisa não fosse respondida pelo servidor local o mesmo iria direcionar a pesquisa para o SLDAP externo percorrendo toda a árvore até que, caso a informação exista, se ache a informação requisitada obtendo a resposta.
Assim o problema será resolvido, pois foi eliminado o gargalo que antes as filiais enfrentavam, e o SLDAP da matriz também não ficará sobrecarrego, pois o mesmo não sofrerá mais com as constantes requisições vindas de todas as filiais e matriz.