2016-07-29 106 views
0

我正在開發一個django項目,並試圖通過LDAP服務器對我的APP進行身份驗證。 settings.py:Django身份驗證LDAP無法找到用戶

AUTH_LDAP_SERVER_URI = "ldap://domain.local" 
AUTH_LDAP_BIND_DN = "domain\django" 
AUTH_LDAP_BIND_PASSWORD = "<Password>" 

AUTH_LDAP_USER_SEARCH = LDAPSearch("cn=Users,dc=domain,dc=local", 
    ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend', 
    'django.contrib.auth.backends.ModelBackend', 
    ) 

代碼:

from django_auth_ldap.backend import LDAPBackend 
auth = LDAPBackend() 
auth.authenticate(username="omers", password="<password>") 

現在我只是用外殼

當我和tcpdump我看到的LDAP數據包,但由於某種原因,LDAP服務器找不到我的用戶,但我知道它存在,我錯過了什麼?

謝謝!

+0

小心該字符串:'「域\ Django的「'。應該是'r'domain \ django「'(儘管如此,它可以工作)。你能發佈錯誤信息嗎? –

+0

嗨,我不知道錯誤信息在哪裏,只是做了一個tcpdump .. – omers

回答

0

好吧, 我找到了答案,我的廣告不使用UID,但CN所以不是

AUTH_LDAP_USER_SEARCH = LDAPSearch("cn=Users,dc=domain,dc=local", 
ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 

我用

AUTH_LDAP_USER_SEARCH = LDAPSearch("cn=Users,dc=domain,dc=local", 
ldap.SCOPE_SUBTREE, "(cn=%(user)s)")