Autenticação no OpenLDAP

Como já foi explicado no capítulo 2 deste handbook, o primeiro passo para se criar um ambiente de autenticação com OpenLDAP é instalar e configurar o servidor slapd. Dependendo da fonte de instalação, a árvore de diretório pode estar ou não preparada. No caso aqui descrito, onde a instalação dá-se a partir da compilação do código-fonte, a árvore não está preparada para trabalhar corretamente, pois esta ainda não contém informações. Por isto, antes de começar a trabalhar com esta árvore e inserir a informação de usuários e grupos, devemos introduzir esta informação básica, composta pelo dn raiz e o usuário de administração da árvore. Este usuário, com a configuração padrão do servidor slapd, terá o direito de modificar qualquer informação da árvore.

Na verdade, com a configuração básica do servidor pode-se fazer qualquer tipo de operação de escrita na árvore usando um método de autenticação simples, que consiste em usar o usuário root que está no arquivo slapd.conf, e o rootpw que também está neste arquivo. Já que não existe informação na árvore, um método de autenticação simples é o mais adequado e rápido para introduzir a informação básica. Mas, uma vez feito isto, é conveniente utilizar métodos de autenticação mais completos, como SASL.

Para ter certeza de que a configuração do servidor está correta, inicie o servidor, sempre com permissões de root, da seguinte forma:

# /usr/local/libexec/slapd


Uma vez iniciado, o próximo passo é criar os dados que mais tarde serão introduzidos na árvore. Esta informação deve ser escrita em um arquivo com um formato específico para LDAP, que se chama ldif. Um arquivo no formato ldif, contém os valores dos atributos de cada dado a ser introduzido, modificado ou eliminado da árvore.

Como qualquer outro formato de dados, o ldif está definido por uma especificação formal, que pode ser consultado na documentação do projeto OpenLDAP. Cada dado, que pode pertencer a um ou vários schemas, possui uma série de atributos obrigatórios e outros opcionais. Porém, para inserir um dado na árvore é necessário definir apenas os atributos obrigatórios. Com certeza, para utilizar os dados de uma árvore para objetivos mais específicos é necessário que sejam definidos os atributos pertinentes para que o funcionamento seja o desejado.

Com qualquer editor de texto, crie um arquivo chamado base.ldif, por exemplo, e preencha com os dados básicos para a árvore do exemplo a seguir:

dn: dc="codeplex",dc="ndos"
objectclass: dcObject
objectclass: organization
ou: "Nucleo de Desenvolvimento"
dc: "codeplex"

dn: cn=Manager,dc="codeplex",dc="ndos"
objectclass: organizationalRole
cn: Manager


Evidentemente, você deve alterar as informações entre aspas para seus valores particulares.

Assim que o arquivo ldif estiver pronto, você deve introduzí-lo na árvore. Isto pode ser feito com o auxílio de vários programas clientes, que serão explicados mais tarde neste handbook. No momento será utilizado um que faz parte das ferramentas de administração do OpenLDAP. Execute o comando abaixo:

# ldapadd -x -D "cn=Manager,dc=codeplex,dc=ndos" -W -f base.ldif


Verificando a documentação do comando ldapadd, note o seguinte:
  • O parâmetro -x indica que, para a inserção do conteúdo do arquivo base.ldif, deseja-se utilizar uma autenticação simples;
  • O parâmetro -D indica que o usuário a ser utilizado para a escrita na árvore é cn=Manager,dc=codeplex,dc=ndos que previamente foi definido com o atributo rootdn do arquivo slapd.conf;
  • O parâmetro -W indica que depois de executar este comando, será solicitado
a senha correspondente ao rootdn anterior, que também está definido com o parâmetro rootpw no arquivo slapd.conf;
  • O parâmetro -f, como é esperado, indica que o arquivo na seqüência contém as informações a serem introduzidas na árvore.

A forma mais rápida e apropriada para comprovar se os dados foram introduzidos corretamente na árvore LDAP é executar uma consulta, como a abaixo:

# ldapsearch -x -b 'dc=codeplex,dc=ndos' '(objectclass=*)'


Esta consulta pode ser executada por qualquer usuário do sistema. Observe também que a consulta é feita sem a necessidade de especificar algum usuário do servidor LDAP. Isto é possível pois não está sendo realizada nenhuma operação de escrita. Como está configurado por padrão no servidor, pode-se realizar uma consulta de busca de forma anônima, ainda que esta não retorne toda a informação introduzida na base de dados, como os atributos de senha userPassword (senha de usuário).

Uma vez que a árvore LDAP contém a informação básica para trabalhar, pode-se pensar em usá-la para autenticar sistemas, o que será explicado a seguir:


Capítulo anterior | Índice

Last edited Sep 14, 2007 at 5:17 PM by joicekafer, version 6

Comments

No comments yet.