gpt4 book ai didi

切换到 LDAPS 后,django-auth-ldap 无法将用户名映射到 DN

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:56 27 4
gpt4 key购买 nike

我正在为我的公司构建一个 django 项目,当我只使用没有 SSL 的简单绑定(bind)时,我有如下设置:

AUTH_LDAP_SERVER_URI = 'ldap://some.example.server:389'
AUTH_LDAP_BASE_DN = 'some-base-dn'
AUTH_LDAP_BIND_DN = 'some-bind-dn'
AUTH_LDAP_BIND_PASSWORD = 'some-password'
AUTH_LDAP_USER_SEARCH = LDAPSearch(
AUTH_LDAP_BASE_DN, ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)')

而且效果很好。

但是,由于我们公司的 LDAP 服务器的安全增强,我们被要求使用 LDAP over SSL。所以我得到了一个证书并像这样更改我的代码:

AUTH_LDAP_GLOBAL_OPTIONS = {
ldap.OPT_X_TLS_REQUIRE_CERT: True,
ldap.OPT_X_TLS_DEMAND: True,
ldap.OPT_REFERRALS: 0,
ldap.OPT_X_TLS_CACERTFILE: '/etc/ssl/certs/mycertfile.pem'
}
AUTH_LDAP_SERVER_URI = 'ldaps://some.example.server:636'
AUTH_LDAP_BASE_DN = 'some-base-dn'
AUTH_LDAP_BIND_DN = 'some-bind-dn'
AUTH_LDAP_BIND_PASSWORD = 'some-password'
AUTH_LDAP_USER_SEARCH = LDAPSearch(
AUTH_LDAP_BASE_DN, ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)')

它不再有效。它一直说 search_s(xxx) 返回 0 个对象:身份验证失败:无法将用户名映射到 DN。

但是如果我将 LDAPSearch() 的过滤器字符串从

'(sAMAccountName=%(user)s)'

'(sAMAccountName=<hard-coded-id>)'

有效。

我一直在努力找出发生这种情况的原因,但到目前为止还没有成功。有谁知道为什么会这样?

非常感谢。

最佳答案

抱歉,这是用户错误。下面的代码完美运行。

AUTH_LDAP_GLOBAL_OPTIONS = {
ldap.OPT_X_TLS_REQUIRE_CERT: True,
ldap.OPT_X_TLS_DEMAND: True,
ldap.OPT_REFERRALS: 0,
ldap.OPT_X_TLS_CACERTFILE: '/etc/ssl/certs/mycertfile.pem'
}
AUTH_LDAP_SERVER_URI = 'ldaps://some.example.server:636'
AUTH_LDAP_BASE_DN = 'some-base-dn'
AUTH_LDAP_BIND_DN = 'some-bind-dn'
AUTH_LDAP_BIND_PASSWORD = 'some-password'
AUTH_LDAP_USER_SEARCH = LDAPSearch(
AUTH_LDAP_BASE_DN, ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)')

关于切换到 LDAPS 后,django-auth-ldap 无法将用户名映射到 DN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59135429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com