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

我正在尝试configurationopenldap 2.4.33(从OS X 10.8的源代码构build)来支持digest-md5身份validation,但不成功。 我无法validation, no secret in database得到一个no secret in database的错误,我不能为我的生活找出原因。

到目前为止的configuration…

我有一个用户指定如下:

 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 

(在那里没有尾随空格,我查过了!)。 我为cn = configconfiguration了适当的olcAuthzRegexp条目,以便将身份validation标识映射到正确的dn:

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

但是,当我search时,我无法validation:

 % ldapsearch -H ldap://localhost:8389 -LLL -bo=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 % 

来自服务器的debugging喋喋不休说,我正在做正确的映射:

 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" 

但是,虽然这个聊天logging包括访问请求的日志:

 5120be85 => access_allowed: auth access to "cn=eb01,ou=bennet,o=meryton" "cn" requested 

chatter不包含userPassword属性的访问请求的任何日志。

也就是说,在这个configuration中,服务器看起来好像不知道userPassword属性是应该执行digest-md5authentication的秘密。 我没有configuration,但(a)我觉得这是默认的秘密,(b)我找不到在manpages或openldap手册,似乎表明如何configuration这个,和(c)在线咨询的各个方面都找不到任何东西,甚至暗示这是必要的。

简单的身份validation很好。

现在,这是一个稍微奇怪的configuration – 明确的文本密码,没有SASL数据库,因为这是一个虚拟/轻量级的LDAPconfiguration运行回归testing – 但我已经完全没有想法读什么接下来,或任何更多的关键字或日志文件片段谷歌。 没有人在整个星球上似乎有这个确切的问题(这不是那么奇特),所以我怀疑我已经以某种方式打破了与另一部分的configuration。 但我相信我明白configuration中的其他一切正在做什么,而且没有什么明显的。

我有这种令人讨厌的感觉,这将会有一个头脑简单的解决办法,但是现在我可以接受任何想法。

那砰的一声,一声巨响,一声巨响,你能听到的是和谐辉煌的头和墙的声音。

问题不在于configuration,而在于请求。 在ldapsearch调用中,我有-X u:eb01 。 但这是代理授权; 要绑定一个特定的用户名,需要-U eb01

在2003年谢谢你。