Использование django-auth-ldap LDAPSearch для поиска двух OU

У меня есть контейнерное приложение, которое использует django-auth-ldap для поиска пользователей в Active Directory. Я хотел бы объединить вывод из двух отдельных подразделений. Есть ли другой метод или перегрузка, которая может занять два DN или способ объединить вывод двух отдельных поисков?

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

1 ответ

Решение

Взято из обновленной документации:

Новое в версии 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)"),
)
Другие вопросы по тегам