您现在可能已经解决了这个问题,但以防万一:
您需要设置 LDAP 存储库(完成)。您需要创建一些可以绑定的用户对象。这是通过使用 LDIF 文件或类似方法来完成的。一个非常有用的可视化 LDAP 数据库的工具是“Apache Directory Studio”。ldif 如何出现的示例:
dn:cn=myuser,cn=localhost
changetype: modify
add: cn=myuser
userPassword: password01
它会因您的架构而异。我强烈建议您阅读 Django 文档以了解特定于您的实现:https ://pythonhosted.org/django-auth-ldap/
这是一个很好的例子(来自文档):
import ldap
from django_auth_ldap.config import LDAPSearch
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
但假设您已通过 ldif 将用户添加到“cn=localhost”,那么这就是您在搜索字段中使用的 dn。如文档所述,您可以根据需要搜索整个目录。
如果不清楚发生了什么:
- 导入 Ldap 模块
- 导入 LDAPSEARCH 函数?来自 django 模块
- 设置一个空白的绑定 DN(这就像一个完全限定的用户名。例如 uid=myuser,dc=com)
- 设置空白绑定密码
- 执行搜索。格式如下: ("base",scope,searchfilter)
您可以在 python 中使用标准 ldap 模块进行测试:
import ldap
ld = ldap.initialize("ldaps://acme.com:636")
ld.bind_s("userDN","Password")
ld.search_s("cn=acme.com",ldap.SCOPE_SUBTREE,"uid=myuser")
不是很重要,但“ldap.SCOPE_SUBTREE”、“ldap.SCOPE_BASE”等只是整数。所以你可以传入 0, 1, 2 来代替。
祝你好运,即使你很久以前就解决了这个问题。