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

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


Inicializando o OpenLDAP



Para evitar a necessidade de informar o endereço do servidor e a base onde serão realizadas as consultas, o OpenLDAP fornece um arquivo de configuração global para os programas que utilizam seu servidor. O arquivo é o /etc/openldap/ldap.conf. Neste tutorial utilizamos o ldap.conf, como mostra o exemplo abaixo.

Arquivo /etc/openldap/ldap.conf:

BASE   dc=ufra,dc=br
URI   ldap://ldaps://ldap.ufra.br

Para permitir consultas ldap:// e ldapi:// configuramos o arquivo /etc/conf.d/slapd habilitando a primeira opção. O arquivo ficou da seguinte forma:

# conf.d file for openldap
#
# To enable both the standard unciphered server and the ssl encrypted
# one uncomment this line or set any other server starting options
# you may desire.
#

OPTS="-h 'ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
# Uncomment the below to use the new slapd configuration for openldap 2.3
#OPTS="-F /etc/openldap/slapd.d -h 'ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"

Caso tenha criado novos arquivos em um diretório diferente do especificado, basta copiar os arquivos ldap.conf e slapd.conf para seus devidos locais. Lembrando que os arquivos /etc/openldap/ldap.conf e /etc/conf.d/slapd citados anteriormente podem ser modificações dos originais.

Copiando o ldap.conf para o diretório /etc/openldap/:

# cp ldap.conf /etc/openldap/ldap.conf

Copiando o slapd.conf para o diretório /etc/openldap/:

# cp slapd.conf /etc/openldap/slapd.conf

É importante que o usuário ldap tenha permissões de leitura e escrita nesse diretório e nesses arquivos.

Para executar a operação de inserção de forma mais rápida e sem necessidade de autenticação, tráfego de rede e outros detalhes, vamos inserir os dados iniciais com o servidor desligado. Para isso é necessário limpar a base de dados deixando apenas o arquivo de configuração do diretório, DB_CONFIG. Lembrando que nossa base dados está no diretório /var/lib/openldap-data, como informado no slapd.conf.

Salvando o DB_CONFIG:

# cp /var/lib/openldap-data/DB_CONFIG /var/lib/

Limpando o diretório do banco de dados:

# rm -Rf /var/lib/openldap-data/*

Copiando o DB_CONFIG para o diretório correto:

# cp /var/lib/DB_CONFIG /var/lib/openldap-data/

Antes de carregar o arquivo de configuração do nosso diretório (base.ldif) é necessário iniciar o servidor com o diretório openldap-data/ contendo apenas o DB_CONFIG e depois desligá-lo.

Inicializando o servidor slapd:

# /etc/init.d/slapd start

Parando o servidor slapd:

# /etc/init.d/slapd stop

NOTA: Sempre que quiser recarregar os dados com o servidor desligado é necessário limpar o diretório /var/lib/openldap-data (como descrito anteriormente) e iniciar e parar o servidor.

Agora podemos carregar nosso diretório com o servidor desligado.

# slapadd -v -l base.ldif

Nota: Tome cuidado com os caracteres inseridos pelos editores de texto.

O resultado da inserção é mostrado abaixo:

added: "dc=ufra,dc=br" (00000001)
added: "dc=professor,dc=ufra,dc=br" (00000002)
added: "dc=aluno,dc=ufra,dc=br" (00000003)
added: "dc=tecnico,dc=ufra,dc=br" (00000004)
added: "ou=agroboy,dc=aluno,dc=ufra,dc=br" (00000005)
added: "ou=bichogrilo,dc=aluno,dc=ufra,dc=br" (00000006)
added: "ou=computeiro,dc=aluno,dc=ufra,dc=br" (00000007)
added: "uid=rudini,ou=computeiro,dc=aluno,dc=ufra,dc=br" (00000008)

Para verificar o conteúdo do nosso diretório podemos usar o comando slapcat. Temos a seguinte saída:

# slapcat

dn: dc=ufra,dc=br
dc: ufra
objectClass: top
objectClass: domain
structuralObjectClass: domain
entryUUID: f626572a-6591-102e-90a6-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000000#00#000000

dn: dc=professor,dc=ufra,dc=br
dc: professor
objectClass: domain
structuralObjectClass: domain
entryUUID: f6268e16-6591-102e-90a7-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000001#00#000000

dn: dc=aluno,dc=ufra,dc=br
dc: aluno
objectClass: domain
structuralObjectClass: domain
entryUUID: f626b422-6591-102e-90a8-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000002#00#000000

dn: dc=tecnico,dc=ufra,dc=br
dc: tecnico
objectClass: domain
structuralObjectClass: domain
entryUUID: f627c1dc-6591-102e-90a9-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000003#00#000000

dn: ou=agroboy,dc=aluno,dc=ufra,dc=br
ou: agroboy
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f627e0c2-6591-102e-90aa-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000004#00#000000

dn: ou=bichogrilo,dc=aluno,dc=ufra,dc=br
ou: bichogrilo
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f6280250-6591-102e-90ab-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000005#00#000000

dn: ou=computeiro,dc=aluno,dc=ufra,dc=br
ou: computeiro
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
entryUUID: f6284274-6591-102e-90ac-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000006#00#000000

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:: e1NTSEF9ZHlhT3VVTm5WUTA0dVJ3cTVrNTVLY3dHZ3VtT0VaaHA=
structuralObjectClass: inetOrgPerson
entryUUID: f628b98e-6591-102e-90ad-fb857a1d72be
creatorsName: cn=Naza,dc=ufra,dc=br
modifiersName: cn=Naza,dc=ufra,dc=br
createTimestamp: 20091114175037Z
modifyTimestamp: 20091114175037Z
entryCSN: 20091114175037Z#000007#00#000000

Página anterior     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

OpenAI - Como usar uma Inteligência Artificial a seu favor

Como criar VIEWS no MySQL

Entendendo o LDAP

Instalação da Plataforma Hadoop

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