Как указать search_filter='(objectClass=group)',search_scope='SUBTREE',attributes = ['member']) для django python3 ldap
Я использую пакет django python3 ldap для синхронизации некоторых пользователей с сервера ldap в моем приложении django. Оно подключается к серверу ldap с моими конфигурациями, определенными в настройках, но поиск пользователей не удается. База поиска, которую я использую, выглядит так
LDAP_AUTH_SEARCH_BASE = "CN=SOME_USERS,OU=Security Group,OU=Example,DC=Example,DC=com"
Но я получаю результат с другим пакетом под названием ldap3.
Для ldap3 я могу указать некоторые дополнительные параметры вместе с search_base, как показано ниже
from ldap3 import Server, Connection, SAFE_SYNC
server = Server('my_server')
conn = Connection(server, 'my_user', 'my_password', client_strategy=SAFE_SYNC,
auto_bind=True)
conn.search(search_base='CN=DTS_USERS,OU=Security
Group,OU=Viacom18,DC=viacom18,DC=com',search_filter='(objectClass=group)'
,attributes = ['member'])
Я просто хочу знать, как я могу указать "search_filter='(objectClass=group)' ,attributes = ['member']" с помощью django python3 ldap. Я проверил документацию на https://github.com/etianen/django-python3-ldap, но не смог найти ничего полезного.
Любая помощь будет оценена по достоинству?
Эти два пакета предназначены для разных целей. Пакет ldap3
является библиотекой LDAP общего назначения. Пакет django-python3-ldap
предназначен для "Аутентификации пользователей на сервере LDAP".
Ваш код ldap3
выглядит так, как будто он ищет членов определенной группы. Если ваша цель - разрешить аутентификацию только пользователям из этой группы, то в документации это описано в разделе Custom User Filters. Обратите внимание на следующее:
# Advanced: apply custom LDAP filter logic.
search_filters.append("(|(memberOf=groupA)(memberOf=GroupB))")
Это ограничит аутентификацию только пользователями из groupA
или GroupB
.