Implementação LDAP e Java

O LDAP é um serviço de diretórios no qual os diretórios são disponibilizados no servidor em uma estrutura hierárquica e podem ser acessados remotamente pelos clientes. Neste tutorial será utilizada a implementação open source OpenLDAP do servidor LDAP para disponibilizar consultas a entidades de uma instituição fictícia utilizando a linguagem Java.

[ Hits: 55.547 ]

Por: João Lucas Pereira de Santana em 23/11/2009


Introdução



O LDAP é um serviço de diretórios baseado no modelo cliente-servidor no qual os diretórios são disponibilizados no servidor em uma estrutura hierárquica e podem ser acessados remotamente pelos clientes.

O LDAP (Lightweight Directory Access Protocol) surgiu como uma alternativa ao protocolo DAP (Directory Access Protocol) para ser implantado numa arquitetura de rede que implementa a pilha de protocolos do TCP/IP visando, principalmente, economia de recursos computacionais.

O slapd, servidor do LDAP, pode fornecer seu próprio serviço de diretórios ou conectar-se a um serviço global para responder às requisições dos clientes. Neste tutorial será utilizada a implementação open source OpenLDAP do servidor de diretórios LDAP para disponibilizar consultas a alunos de uma universidade fictícia (a Universidade Federarrr Rurarrr dos Agrônom - UFRA) utilizando a linguagem Java.

Criando uma estrutura de diretórios.

A estrutura de uma base LDAP pode ser vista na Figura 1.
Linux: Implementação LDAP e Java
O arquivo de configuração base.ldif da estrutura anterior é mostrado abaixo:

dn: dc=ufra,dc=br
dc: ufra
objectClass: top
objectClass: domain

dn: dc=professor,dc=ufra,dc=br
dc: professor
objectClass: domain

dn: dc=aluno,dc=ufra,dc=br
dc: aluno
objectClass: domain

dn: dc=tecnico,dc=ufra,dc=br
dc: tecnico
objectClass: domain

dn: ou=agroboy,dc=aluno,dc=ufra,dc=br
ou: agroboy
objectClass: organizationalUnit

dn: ou=bichogrilo,dc=aluno,dc=ufra,dc=br
ou: bichogrilo
objectClass: organizationalUnit

dn: ou=computeiro,dc=aluno,dc=ufra,dc=br
ou: computeiro
objectClass: organizationalUnit

dn: uid=rudini,ou=computeiro,dc=aluno,dc=ufra,dc=br
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
cn: Rudini
sn: PitBull
uid: rudini
uidNumber: 1010
gidNumber: 100
homeDirectory: /home/rudini
loginShell: /bin/bash
gecos: Rudini AuAu PitBull
userPassword: {SSHA}dyaOuUNnVQ04uRwq5k55KcwGgumOEZhp

O arquivo LDIF (LDAP Data Interchange Format) anterior é do tipo texto e contém dados no formato LDAP para serem inseridos no banco de dados. É comum usar este arquivo como cópia de segurança dos dados.

O atributo dn significa Distinguished Name e seu conteúdo deve ser único em todo o banco de dados. Um dn identifica um, e somente um, objeto em toda a árvore de dados e é composto pelo atributo mais o caminho para ser chegar até a raiz da árvore.

O atributo dc significa Domain Component e é utilizado para determinar o caminho até a raiz da árvore:

dn: ou=computeiro,dc=aluno,dc=ufra,dc=br

Os atributos objectClass são classes de objetos e atributos para representar um usuário do sistema Linux. Estas classes estão definidas nos schemas que posteriormente serão inseridos nos arquivos de configuração do servidor.

objectClass: organizationalUnit

Uid é o nome de login do usuário, cn significa Common Name ou Nome Comum e representa o primeiro nome do usuário, sn (Surname) é o sobrenome do usuário. UidNumber é o número de identificação do usuário, gidNumber é o número de identificação do grupo primário do usuário, homeDirectory é a localização do diretório home do usuário, loginShell será o shell utilizado pelo usuário, gecos normalmente é o nome completo do usuário e userPassword é o hash da senha do usuário.

Para gerar um hash basta usar o comando slappasswd. Neste exemplo a senha usada foi a palavra "auau".

# slappasswd
New password:
Re-enter new password:
{SSHA}Zaoa6XdxaiC8r5s+LLiLxkdUHxyZxpkq

    Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando o OpenLDAP
   3. Inicializando o OpenLDAP
   4. Realizando consultas/inserções
   5. Comunicação Java e LDAP
Outros artigos deste autor

Uma introdução ao Linux-PAM

Leitura recomendada

Como criar VIEWS no MySQL

Instalando o poderoso banco de dados IBM DB2!

Gerencie suas informações através de instruções SQL com selects turbinados (para leigos e experts)

MongoDB Aggregation

Entendendo o LDAP

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts