Использование django-auth-ldap LDAPSearch для поиска двух подразделений
У меня есть контейнерное приложение, которое использует 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)"),
)