Como utilizar o módulo PythonLDAP
Autor: ChristianoAnderson
Introdução
Atualmente muitos desenvolvedores estão fazendo o gerenciamento de usuários através de LDAP. Com ele, é possível trabalhar com uma árvore enorme e modular.
Com LDAP também é possível integrar na mesma base todo o gerenciamento e roteamento de e-mails, unificar senhas onde o usuário com uma única senha pode autenticar na intranet, ler seus e-mails e utilizar sistemas internos de uma empresa.
O módulo PythonLDAP é bastante rico e permite um gerenciamento completo de uma base LDAP.
Links
Página do Open LDAP: http://www.openldap.org
Módulo PythonLDAP: http://python-ldap.sourceforge.net
Instalação
Sua distribuição já deve ter os pacotes, geralmente chamados python-ldap.
Se você é um feliz usuário de Debian, basta dar um apt-get install python-ldap
Caso prefira fazer a instalação manual, basta baixar a última versão do PythonLDAP e prosseguir com a instalação. Ao descompactar o tarball, edite o arquivo setup.cfg verifique se as linhas de include estão de acordo com a sua distribuição. Em seguida basta:
python setup.py build
Se não ocorrer nenhum erro, prossiga com a instalação:
python setup.py install
Para verificar se o módulo foi instalado com sucesso, faça o seguinte teste:
anderson@aldebaran:~$ python Python 2.3.4 (#2, Sep 24 2004, 08:39:09) [GCC 3.3.4 (Debian 1:3.3.4-12)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import ldap >>>
Se não ocorrer nenhum erro, você está pronto para trabalhar com o módulo.
Estabelecendo conexão com LDAP
# Abaixo faremos o teste de conexão
try:
# Conectando
l = ldap.open("ip ou nome do servidor de ldap")
# Abaixo a versão, a mais comum é a versão 2
l.protocol_version = ldap.VERSION2
except ldap.LDAPError, e:
print e
# Acima devolvemos o erro
Pesquisando informações
# Insira o código acima
# Defina o nome da sua base de LDAP.
# Exemplo: baseDN = "dc=pythonbrasil,dc=com"
baseDN = "dc=seu_dominio,dc=com"
# Escopo da pesquisa - Objetos abaixo da árvore
searchScope = ldap.SCOPE_SUBTREE
# Definindo o não retorno de atributos
retrieveAttributes = None
# Abaixo é definido o filtro, busque sempre algum objeto válido no ldap
# Exemplos de Objetos: ou,uid,cn,objectClass
# Exemplo de filtro: "uid=jose*"
searchFilter = "uid=usuario*"
# Fazendo a pesquisa na árvore do ldap
try:
ldap_result_id = l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
result_set = []
while 1:
result_type, result_data=l.result(ldap_result_id, 0)
if (result_data == []):
break
else:
if result_type == ldap.RES_SEARCH_ENTRY:
result_set.append(result_data)
print result_set[0][0]
except ldap.LDAPError, e:
print e
# Exibindo possíveis erros
Adicionando informações
(seção sendo elaborada)
Alterando informações
(seção sendo elaborada)
Removendo informações
(seção sendo elaborada)


