openldap和digest-md5:数据库中没有秘密

Nor*_*ray 3 openldap

我正在尝试配置 openldap 2.4.33(从 OS X 10.8 上的源代码构建)以支持摘要 md5 身份验证,但没有成功。我无法进行身份验证,出现错误no secret in database,而且我一生都无法找出原因。

到目前为止的配置...

我有一个用户指定如下:

dn: cn=eb01,ou=bennet,o=meryton
objectclass: Person
objectclass: inetOrgPerson
cn: eb01
givenname: Elizabeth
sn: Bennet
userPassword: pw1
# or try...
#userPassword:: cHcx
#userPassword: {CLEARTEXT}pw1
Run Code Online (Sandbox Code Playgroud)

(我已经检查过,那里没有尾随空格!)。我为 cn=config 配置了适当的 olcAuthzRegexp 条目,以将身份验证身份映射到正确的 dn:

olcAuthzRegexp: uid=([^,]*),cn=digest-md5,cn=auth
  ldap:///o=meryton??sub?(cn=$1)
Run Code Online (Sandbox Code Playgroud)

但是,当我搜索时,我无法验证:

% ldapsearch -H ldap://localhost:8389 -LLL -b o=meryton \
      -Y DIGEST-MD5 -X u:eb01 -w pw1
SASL/DIGEST-MD5 authentication started
ldap_sasl_interactive_bind_s: Invalid credentials (49)
    additional info: SASL(-13): user not found: no secret in database
%
Run Code Online (Sandbox Code Playgroud)

来自服务器的调试信息表明我正在正确地进行映射:

5120be85 <==slap_sasl2dn: Converted SASL name to cn=eb01,ou=bennet,o=meryton
5120be85 slap_sasl_getdn: dn:id converted to cn=eb01,ou=bennet,o=meryton
5120be85 SASL Canonicalize [conn=1000]: slapAuthzDN="cn=eb01,ou=bennet,o=meryton"
5120be85 SASL [conn=1000] Failure: no secret in database
5120be85 send_ldap_result: conn=1000 op=1 p=3
5120be85 send_ldap_result: err=49 matched="" text="SASL(-13): user not found: no secret in database"
Run Code Online (Sandbox Code Playgroud)

然而,虽然该聊天记录包含访问请求日志:

5120be85 => access_allowed: auth access to "cn=eb01,ou=bennet,o=meryton" "cn" requested
Run Code Online (Sandbox Code Playgroud)

该聊天记录不包含对该userPassword属性的访问请求的任何日志。

也就是说,在此配置中,服务器似乎不知道该属性userPassword是它应该执行摘要 md5 身份验证的秘密。我还没有配置它,但是(a)我觉得这是默认的秘密,(b)我在联机帮助页或 openldap 手册中找不到任何表明如何配置它的内容,以及(c)在各种在线建议中找不到任何内容,甚至暗示这是必要的。

简单的认证就可以了。

现在,这是一个有点奇怪的配置——明文密码,没有 SASL 数据库,因为这是一个虚拟/轻量级 LDAP 配置来运行回归测试——但我已经完全不知道该读什么了接下来,或者任何更多的关键字或日志文件片段来谷歌搜索。整个星球上似乎没有人遇到过这个精确的问题(这并不是那么奇怪),所以我怀疑我以某种方式用配置的另一部分破坏了这个问题。但我相信我了解配置中其他所有内容的作用,并且......没有什么明显的。

我有一种令人讨厌的感觉,这将有一个令人头疼的简单修复,但现在,我对任何想法都持开放态度。

Nor*_*ray 5

你能听到的“砰、砰、砰、砰”的声音是头和墙和谐地发出的声音。

问题不在于配置,而在于请求。在 ldapsearch 调用中,我有-X u:eb01. 但这是为了代理授权;要与特定用户名绑定,需要-U eb01.

2003年谢谢朱霍华