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

Abril 2015

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


Para começar a digitar as informações no nosso diretório, trata-se de criar dois arquivos texto de formato LDIF. Antes de digitar as informações que concernem os usuários, é preciso antes definir a sociedade que está na raiz do diretório. Para anto, é preciso criar um arquivo sociedade.txtque conteha as seguintes informações:

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

Em seguida, para entra restas informações no repertório, basta utilizar o seguinte comando :
ldapadd -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f societe.txt

A senha de administrador (no presente caso « secreto ») será solicitado :
Enter LDAP Password: 

A seguinte mensagem deverá então aparecer :
adding new entry o=commentcamarche, c=fr

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 em claro (-w somente 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.

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

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr  
   cn: DUPOND Georges  
   mail: dupond@tuxserveur.tuxdomaine  
   telephonenumber:84756  
   objectclass: person

Duas observações :
  • Primeiramente para aqueles que acompanham :

- como é possível colocar um atributo mail quando não é definido na estrutura do objeto a person ?
''E 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 não é definido no arquivo

Em seguida, para entrar estas informações no diretório, é preciso utilizar o seguinte comando:
ldapadd -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f personne.txt

Depois de ter digitado a senha, que você deveria obter :
adding new entry cn=DUPOND Georges, o=commentcamarche, c=fr

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 se faz através do comando ldapsearch.

Três exemplos para ilustrar o uso deste comando :

ldapsearch -b « o=commentcamarche, c=fr » « o=commentcamarche »

Permite obter as informações que concerne a sociedade. (-b é usado para precisar o ponto de partida da pesquisa).
ldapsearch -b « o=commentcamarche, c=fr » « objectclass=person»

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

ldapsearch -b « o=commentcamarche, c=fr » « cn=DUPOND*»

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

Supressão de um elemento do diretório LDAP


Para suprimir um elemento, o comando ldapdelete deve ser utilizado precisando o Distinguished Name (DN) completo do objeto a ser destruído. Não esquecer de precisar também o usuário a utilizar para efetuar a destruição, aqui ldap_admin. Por exemplo, para destruir o usuário PILLOU Jean-François do diretório :

ldapdelete -v -D "cn=ldap_admin,  
         o=commentcamarche,  
         c=fr"  
        -W « cn=PILLOU Jean-François,  
          o=commentcamarche,  
          c=fr »

Você deverá obter (-v é a opção verbose : modo « falando ») a mensagem abaixo:
deleting entry "cn=PILLOU Jean-François, o=commentcamarche, c=fr"


removed

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


A modificação do diretório não é uma operação muito simples. É preciso num primeiro lugar criar um arquivo que contenha as modificações depois lançar o comando. ldapmodify. Por exemplo, para modificar o número de telefone do usuário DUPOND, deve-se criar um arquivo modif.txt contendo as informações abaixo:

   dn: cn=DUPOND Georges, o=commentcamarche, c=fr  
   changetype: modify  
   replace: telephoneNumber  
   telephoneNumber: 72845

Depois lançar o comando :
ldapmodify -v -D "cn=ldap_admin, o=commentcamarche, c=fr" -W -f modif.txt

Para obter o seguinte resultado :
   replace telephoneNumber :  
   72845  
   modifying entry cn=DUPOND Georges, o=commentcamarche, c=fr  
   modify complete

Além do mis,é possível adicionar elementos dos objetos utilizando a sintaxe, abaixo, no qrauivo texto :
   dn: cn=DUPOND Georges, o=commentcamarche, c=fr  
   mail

Isto terá como efeito de suprimir o mail de usuário DUPOND.
   dn: cn=DUPOND Georges, o=commentcamarche, c=fr  
   +descrição=UsuárioDUPOND

Adicione a propriedade ao objeto person DUPOND.

Algumas dicas


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

Para reinicializar completamente o diretório. E preciso primeiro destruir a banco existente depois lançar novamente o servidor depois de ter as modificações nos arquivos de configuração.
Para destruir o antigo banco, basta esvaziar o diretório /var/lib/ldap através do comando:

rm -fr /var/lib/ldap/*



Artigo escrito por Jeff Pillou e Michel Maudet

Tradução feita por Ana Spadari

Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Construcao-e-utilizacao-de-um-servidor-ldap-openldap.pdf

A ver igualmente

Este documento, intitulado « Construção e utilização de um servidor LDAP (OpenLDAP) »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.