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)