【发布时间】:2022-01-07 16:41:17
【问题描述】:
我正在使用 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 的文档,但找不到任何有用的东西。
这是我的所有设置
LDAP_AUTH_URL = "ldaps://example.com:636"
LDAP_AUTH_USE_TLS = True
LDAP_AUTH_SEARCH_BASE = "CN=SOME_USERS,OU=Security Group,OU=Example,DC=Example,DC=com"
LDAP_AUTH_USER_FIELDS = {
"username": "sAMAccountName",
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
}
LDAP_AUTH_OBJECT_CLASS = "group"
LDAP_AUTH_USER_LOOKUP_FIELDS = ("username",)
LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data"
LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations"
LDAP_AUTH_FORMAT_SEARCH_FILTERS = "utils.ftp.custom_format_search_filters"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory_principal"
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = "example.com"
LDAP_AUTH_CONNECTION_USERNAME = "my_user"
LDAP_AUTH_CONNECTION_PASSWORD = "password"
LDAP_AUTH_CONNECT_TIMEOUT = None
LDAP_AUTH_RECEIVE_TIMEOUT = None
AUTHENTICATION_BACKENDS = (
'django_python3_ldap.auth.LDAPBackend',
'django.contrib.auth.backends.ModelBackend', # this is default
'guardian.backends.ObjectPermissionBackend', # guardian dependencies
)
我的功能是
def custom_format_search_filters(ldap_fields):
search_filters = format_search_filters(ldap_fields)
search_filters.append("(memberOf=CN=SOME_USERS,OU=Security Group,OU=Example,DC=Example,DC=com)")
return search_filters
我只想同步 SOME_USERS 组内的用户 任何帮助将不胜感激?
【问题讨论】:
标签: python django ldap ldap-query