django_python3_ldap配置多个OU作为LDAP_AUTH_SEARCH_BASE遇到问题求助
解决django_python3_ldap配置LDAP_AUTH_SEARCH_BASE时的noSuchObject错误
首先得戳破问题的核心:你写的那个合并后的搜索基OU=Users,OU=xxx Accounts,OU=yyy Accounts,OU=ZZZ,DC=domain,DC=local在你的LDAP服务器里根本不存在。
从你之前的成功配置能看出来,xxx Accounts和yyy Accounts是同级OU——它们都直接挂在OU=ZZZ下面,各自内部有自己的OU=Users。你错误地把它们写成了嵌套关系(把xxx Accounts放进了yyy Accounts里),LDAP找不到这个虚构的路径,自然就抛出了NO_OBJECT错误。
下面是具体的解决步骤:
- 先确认LDAP目录结构:用LDAP浏览器工具(比如Apache Directory Studio)连接你的域控制器,直观查看
OU=ZZZ下的组织结构,确认xxx Accounts和yyy Accounts确实是平级的,各自包含OU=Users。 - 配置多个搜索基:django_python3_ldap支持同时指定多个搜索路径,不需要强行嵌套。修改
settings.py里的配置为列表形式:LDAP_AUTH_SEARCH_BASE = [ "OU=Users,OU=xxx Accounts,OU=ZZZ,DC=domain,DC=local", "OU=Users,OU=yyy Accounts,OU=ZZZ,DC=domain,DC=local", ] - 验证配置有效性:重启你的Django服务,分别用userxxx和useryyy测试登录,确认两个用户都能正常通过LDAP认证。
- 额外排查点:如果还是有问题,检查你的LDAP绑定用户是否有访问这两个搜索基的权限(不过你单独配置时都能成功,权限大概率没问题)。
内容的提问来源于stack exchange,提问作者user625079
相关产品推荐
相关产品推荐

