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
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?