为什么ldap匿名搜索请求不起作用而允许?

时间:2014-02-21 20:37:50

标签: ldap openldap ldap-query

我有一个带有olc的ldap服务器(slapd.d目录而不是静态文件:服务器包含自己的配置!)。

我想在其上执行搜索操作,而不提供任何凭据。

该对象仅用于获取内部用户的dn(可能是邮件),然后AFTER,使用正确的信用卡以这个精确的dn进行身份验证。

当我查看配置时,似乎允许这样的操作:

# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=22decembre,dc=eu
olcAccess: {0}to attrs=userPassword,shadowLastChange 
    by self write 
    by anonymous auth
    by dn="cn=admin,dc=22decembre,dc=eu" write
    by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to *
    by self write
    by dn="cn=admin,dc=22decembre,dc=eu" write 
    by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=22decembre,dc=eu
olcRootPW: {SSHA}cgcKtuYqJpUxLIgbCwWgLRgQv0VNIPzN
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

尽管如此,当我运行ldapsearch时,它会继续问我使用sasl auth方法的密码。

实际上,主要目的是使用php,但我认为它必须至少在命令行中工作,否则在php中,我不会猜到任何事情。

1 个答案:

答案 0 :(得分:1)

解决。即使允许使用匿名绑定,您也需要说使用-x选项进行身份验证(荒谬不是我们想要的!)。

所以对于前:

ldapsearch -x -H ldap://blackblock "uid=stephane" -b "dc=22decembre,dc=eu"

好的!您无需输入密码。