使用django_auth_ldap检查多个组织单位(ou)

时间:2011-08-12 17:43:00

标签: django ldap django-authentication

我们设置了ldap,以便我们有多个不同的组织单位(ou)。我目前有一个使用django_auth_ldap连接到我们的ldap服务器的django项目,因此人们可以使用他们的ldap凭据登录。但是,当我需要它来处理多个时,我只能让它为你工作。我目前已将其设置为

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_SERVER_URI = "ldap://ldap.example.net"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people_1,dc=example,dc=net",
   ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName",
                           "last_name": "sn",
                           "email": "email",
                           }

这适用于吸引来自people_1群组的人。如何设置它以便它还可以从另一个容器中选择,例如people_2?我试过添加“ou = people_1,ou = people_2”,这似乎不起作用。我仍然是理解ldap的新手,所以我道歉,如果这可能实际上是一些微不足道的修复,只是没有正确搜索找到答案。我花了一些时间让django_auth_ldap为我工作(当我这么做时非常开心!)。

1 个答案:

答案 0 :(得分:2)

将基础对象更改为dc=example,dc=net:然后,您指定的subtree的搜索范围将搜索dc=example,dc=net下的所有子树。有关LDAP搜索请求和响应操作的更多信息,请参阅我的博客条目"Using ldapsearch"。即使示例使用命令行工具,这些概念也会对您有所帮助。

此外,作为良好的编程习惯,您应该提供size limittime limit。这些参数的默认值因您的API而异,可能不符合您的需求。