Django身份验证LDAP无法找到用户

时间:2016-07-29 21:22:20

标签: python django ldap

我正在开发一个django项目,并且我正在尝试针对LDAP服务器验证我的APP。 settings.py:

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>")

现在我只使用shell

当我执行tcpdump时,我看到了LDAP数据包但由于某种原因,LDAP服务器无法找到我的用户,但我知道它存在,我缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

确定, 我找到了答案,我的AD并没有使用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)")