2012-09-10 15 views
5

Non capisco come usare LDAPBackend in django, tutto quello che voglio fare è autenticare un utente contro LDAP. Ho provato la seguente:Autenticazione utente Django: django_auth_ldap.backend.LDAPBackend

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

A questo punto è utente Nessuno e guardando tcpdump non riesco a vedere alcun tentativo di connessione al server 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', 
) 

il Django doc ufficiale non fornisce alcun frammento su come utilizzare questo backend in una vista.

Mille grazie per il vostro aiuto!

+0

Questo è vero. Il documento ufficiale di Django è estremamente limitato. – shailenTJ

risposta

1

Tutta la documentazione per django-auth-ldap è here. Per eseguire il debug della configurazione, è necessario installare un gestore di registrazione sul logger 'django_auth_ldap'; vedi Django's logging documentation per ulteriori informazioni.

A prima vista, direi che un problema è che AUTH_LDAP_SERVER_URI non è impostato su un URI; prova qualcosa del modulo ldap://ldap.example.com/. Dovrai anche esaminare la documentazione di AUTH_LDAP_BIND_AS_AUTHENTICATING_USER: questa è un'opzione avanzata e piuttosto sottile che devi abilitare solo se sai di averne bisogno.

+0

Ciao psiche, grazie mille per il tuo aiuto, dopo aver prefisso il nome host con ldap: // Ho iniziato a vedere il traffico LDAP, che era sicuramente il mio problema. – Cosmix