Construção e utilização de um servidor LDAP (OpenLDAP)

Setembro 2017

Construção do banco de dados do diretório LDAP

Para começar a digitar as informações no nosso diretório, precisamos criar dois arquivos de texto no formato LDIF. Antes de digitar as informações referentes aos usuários, é preciso definir a sociedade que é a raiz do diretório. Para fazê-lo, é preciso criar um arquivo sociedade.txt que contenha as seguintes informações:

dn: o=ccm, c=br  
o:ccm
descrição: CCM é nossa sociedade de teste para o diretório LDAP
postofficebox: Cidade da sua sociedade
postaladdress: Endereço da sua sociedade
postalcode: Código postal da sua sociedade
objectclass: organização

Em seguida, para entrar estas informações no diretório, basta utilizar o seguinte comando:

ldapadd -D "cn=ldap_admin, o=ccm, c=br" -W -f sociedade.txt

A senha de administrador (no presente caso ‘secreto’) será solicitada:

Enter LDAP Password: 

Então, a seguinte mensagem deverá aparecer:

adding new entry o=ccm, c=br

O parâmetro -D define a cadeia de conexão ao diretório com o usuário ldap_admin. -W significa que se quer um prompt para digitar a senha. Teria sido possível utilizar o parâmetro -w secret, mas o inconveniente é que a senha de administrador é digitada abertamente (-w só pode ser usado durante a criação dos scripts para automatizar certas operações). Enfim, o parâmetro -f indica o arquivo LDIF a ser inserido no diretório.

Em seguida, vamos proceder da mesma maneira para criar nosso primeiro usuário. Trata-se de editar um arquivo pessoa.txt que contenha:

dn: cn=CUNHA Renato, o=ccm, c=br  
cn: CUNHA Renato
mail: cunha@tuxservidor.tuxdomínio
telephonenumber:84756
objectclass: person

Aqui, podemos fazer duas observações:

Em primeiro lugar para aqueles que acompanham: como é possível colocar um atributo e-mail já que ele não está definido na estrutura do objeto person? É graças a diretiva schemacheck off colocada no arquivo slapd.conf que indica que temos o direito de não respeitar completamente a estrutura dos objetos definidos no arquivo slapd.oc.conf . É pela mesma razão que nenhum campo sn é definido no arquivo. Em seguida, para entrar estas informações no diretório, é preciso utilizar o seguinte comando:

ldapadd -D "cn=ldap_admin, o=ccm, c=br" -W -f personne.txt

Depois de digitar a senha, você deverá obter:

adding new entry cn=CUNHA Renato, o=ccm, c=br

Para digitar novo usuários, basta modificar o arquivo pessoa.txt e usar o comando
ldapadd
.

Consulta do diretório LDAP

A consulta ao diretório é feita através do comando
ldapsearch
.

Veja três exemplos para ilustrar o uso deste comando:

ldapsearch -b « o=ccm, c=br » « o=ccm »

Permite obter as informações referentes à sociedade. (-b é usado para precisar o ponto de partida da pesquisa).

ldapsearch -b « o=ccm, c=br » « objectclass=person»

Permite obter informações sobre os usuários que você digitou no seu diretório.

ldapsearch -b « o=ccm, c=br » « cn=CUNHA*»

Permite obter informações de todos os usuários CUNHA presentes no seu diretório.

Remoção de um elemento do diretório LDAP

Para excluir um elemento, o comando
ldapdelete
deve ser utilizado especificando o Distinguished Name (DN) completo do objeto a ser removido. Não esquecer de especificar também o usuário que será usado para efetuar a eliminação, aqui
ldap_admin
. Por exemplo, para destruir o usuário SANTOS Eduardo do diretório:

ldapdelete -v -D "cn=ldap_admin,  
o=ccm,
c=br"
-W « cn=SANTOS Eduardo,
o=ccm,
c=br »

Você deverá obter (-v é a opção detalhada: modo ‘falando’) a mensagem abaixo:

deleting entry "cn=SANTOS Eduardo, o=ccm, c=br"


removed

Modificação de um elemento do diretório LDAP

A modificação do diretório não é uma operação muito simples. Para começar, é preciso criar um arquivo com as modificações e, em seguida, lançar o comando
ldapmodify
. Por exemplo, para modificar o número de telefone do usuário CUNHA, devemos criar um arquivo modif.txt contendo as informações abaixo:

   dn: cn=CUNHA Renato, o=ccm, c=br  
changetype: modify
replace: telephoneNumber
telephoneNumber: 72845

Em seguida, lançar o comando:

ldapmodify -v -D "cn=ldap_admin, o=ccm, c=br" -W -f modif.txt

Para obter o seguinte resultado:

replace telephoneNumber:   
72845
modifying entry cn=CUNHA Renato, o=ccm, c=br
modify complete

Além disso, é possível adicionar ou remover elementos dos objetos utilizando a sintaxe abaixo, no arquivo de texto:

   dn: cn=CUNHA Renato, o=ccm, c=br  
mail

Isto excluirá o e-mail de usuário CUNHA.

dn: cn=CUNHA Renato, o=ccm, c=br  
+descrição=UsuárioCUNHA

Adicione a propriedade ao objeto person CUNHA.

Algumas dicas

Para digitar diversas pessoas no mesmo arquivo personne.txt, basta separar cada definição com uma linha branca;

Para reinicializar completamente o diretório, é preciso, em primeiro lugar, destruir o banco de dados existente e, em seguida, lançar novamente o servidor depois de colocar as modificações nos arquivos de configuração;

Para destruir o antigo banco de dados, basta esvaziar o diretório
/var/lib/ldap
através do comando:

rm -fr /var/lib/ldap/*

Veja também


Construction et utilisation du serveur LDAP (OpenLDAP)
Construction et utilisation du serveur LDAP (OpenLDAP)
Última modificação: 9 de julho de 2017 às 07:18 por ninha25.
Este documento, intitulado 'Construção e utilização de um servidor LDAP (OpenLDAP)', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.