Использование 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)"),
)