使用django-auth-ldap LDAPSearch搜索两个OU

时间:2018-08-21 17:31:19

标签: django django-auth-ldap

我有一个使用django-auth-ldap的容器化应用程序,用于在Active Directory中搜索用户。我想合并两个单独的OU的输出。是否有其他方法或重载需要两个DN,或者将两个单独的搜索的输出联接在一起?

AUTH_LDAP_USER_SEARCH = LDAPSearch(os.environ.get('AUTH_LDAP_USER_SEARCH_BASEDN', ''),
                                ldap.SCOPE_SUBTREE,
                                "(sAMAccountName=%(user)s)")

1 个答案:

答案 0 :(得分:6)

取自updated documentation

  

1.1版的新功能。

     

如果您需要在一个以上的地方搜索用户,则可以使用   LDAPSearchUnion。这需要多个LDAPSearch对象并返回   结果的并集。基础搜索的优先级是   未指定。

import ldap
from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion

AUTH_LDAP_USER_SEARCH = LDAPSearchUnion(
    LDAPSearch("ou=users,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"),
    LDAPSearch("ou=otherusers,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)"),
)