2016-04-20 3 views
0

Morgen,Django Auth findet nicht Benutzerkonto in LDAP

Ich bin Umsetzung Django Auth Ldap in meinem proyect aber es funktioniert nicht. Ich habe die ldap-Verbindung überprüft (durch die Django-Shell) und gebe eine Suche zurück, also denke ich, dass python-ldap funktioniert. Früher habe ich die nächste:

import ldap 
con = ldap.initialize("ldap://hostname") 
con.simple_bind_s("CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local", "MyPassword") 
con.search_s('DC=CompanyName, DC=local', ldap.SCOPE_SUBTREE, '(objectclass=person)', ['sn']) 

Wenn ich versuche, einen Benutzer von Web (mit Django-Auth-LDAP) zu authentifizieren, Authentifizierung immer None zurückgibt.

Settings. (LDAP Configuration). 
AUTH_LDAP_SERVER_URI = "ldap://hostname" 
AUTH_LDAP_BIND_DN = "CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local" 
AUTH_LDAP_BIND_PASSWORD = "MyPassword" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("CN=Users, DC=CompanyName, DC=local", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 
AUTH_LDAP_CONNECTION_OPTIONS = { 
    ldap.OPT_REFERRALS: False 
} 

from django_auth_ldap.backend import LDAPBackend 
View. 
def Login(request): 
usr = "MyUserName" 
pwd = "MyPassword" 

    if request.method == 'POST': 
     ldap_backend = LDAPBackend() 
     user = ldap_backend.authenticate(usr, pwd) 
     print user 
     print usr, pwd 

Aus meiner Sicht vorbei ist ich auf die LDAP-Authentifizierung meinen Benutzername und Passwort, die ich für die Anmeldung in der Domäne verwendet. Ist das korrekt? bekam ich den Wert "CN=MyName MySurname, CN=Users, DC=CompanyName, DC=local" von einem Befehl in Directory Active Server, Art: dsquery Benutzer

Dies ist das AD-Schema: AD Structure

Was mache ich falsch?

Danke Jungs.

EDITED: Das Problem ist, wenn ich die Suche throug uid definieren, wenn ich es als AUTH_LDAP_USER_SEARCH = LDAPSearch ("CN = Users, DC = Company, DC = local", ldap.SCOPE_SUBTREE „(CN =% definieren (user) s) ") funktioniert (und in der Sicht muss ich als usr =" MyNameMySurname " statt). Wie kann ich die Suche über den Benutzernamen definieren, mit dem ich mich angemeldet habe?

Antwort

0

Endlich ... Ich muss samAccountName anstelle von CN verwenden. Ich hoffe es hilft euch allen. Danke Leute.

Verwandte Themen