associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

PythonLdap

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.

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)