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.459 ]

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

Injeção de SQL

Informix: Instalação - Configuração - Conceito

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

Instalando o poderoso banco de dados IBM DB2!

  
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