2012-09-10 21 views
5

No entiendo cómo usar LDAPBackend en django, todo lo que quiero hacer es autenticar a un usuario contra LDAP. He intentado el siguiente:Autenticación de usuario Django: django_auth_ldap.backend.LDAPBackend

from django_auth_ldap.backend import LDAPBackend 
auth = LDAPBackend() 
user = auth.authenticate(username='my_uid',password='pwd') 

En este punto el usuario es Ninguno y mirando a tcpdump no puedo ver cualquier intento de conexión con el servidor LDAP.

settings.py
AUTH_LDAP_SERVER_URI = 'ldap.example.com' 
AUTH_LDAP_USER_DN_TEMPLATE = 'uid=%(user)s,ou=People,dc=example,dc=com' 
AUTH_LDAP_BIND_AS_AUTHENTICATING_USER = True 
AUTH_LDAP_CACHE_GROUPS = True 
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600 
AUTH_LDAP_USER_ATTR_MAP = { 
"first_name": "givenName", 
"last_name": "sn", 
"email": "mail" 
} 
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend', 
'django_auth_ldap.backend.LDAPBackend', 
) 

El documento oficial de Django no proporciona ningún fragmento acerca de cómo utilizar este componente de fondo en una vista.

Muchas gracias por su ayuda!

+0

Eso es verdad. El documento oficial de django es extremadamente limitado. – shailenTJ

Respuesta

1

Toda la documentación para django-auth-ldap es here. Para depurar su configuración, querrá instalar un controlador de registro en el registrador 'django_auth_ldap'; vea Django's logging documentation para más sobre eso.

De un vistazo, diría que un problema es que AUTH_LDAP_SERVER_URI no tiene un URI; intente algo de la forma ldap://ldap.example.com/. También querrá revisar la documentación para AUTH_LDAP_BIND_AS_AUTHENTICATING_USER: esta es una opción avanzada y algo sutil que solo debe habilitar si sabe que la necesita.

+0

Hola, muchachos, muchas gracias por su ayuda, después de prefijar el nombre de host con ldap: // Empecé a ver el tráfico ldap, ese fue definitivamente mi problema. – Cosmix

Cuestiones relacionadas