从控制台运行:ldapsearch -D cn=admin,dc=psikon,dc=net -LLL -W
我得到一个条目:
dn: cn=megatron,ou=Executive,dc=psikon,dc=net
sn: megatron
objectClass: inetOrgPerson
objectClass: top
userPassword:: [password]
cn: megatron
到目前为止,一切都很好?
因此,vhost 有一个简单的配置:
AuthBasicProvider ldap
AuthLDAPURL "ldapi:///?cn"
AuthLDAPBindDN "cn=admin,dc=psikon,dc=net"
AuthLDAPBindPassword "[admin passwd]"
Require valid-user
但是,当尝试登录时,apache 日志显示:
[Fri Nov 30 09:14:57 2012] [debug] mod_authnz_ldap.c(403): [client 173.246.22.18] [11233] auth_ldap authenticate: using URL ldapi:///?cn
[Fri Nov 30 09:14:57 2012] [info] [client 173.246.22.18] [11233] auth_ldap authenticate: user megatron authentication failed; URI / [ldap_search_ext_s() for user failed][No such object]
[Fri Nov 30 09:14:57 2012] [error] [client 173.246.22.18] user megatron not found: /
我的环境:
操作系统: Ubuntu 12.04 LTS
OpenLDAP:2.4.28
Apache httpd: 2.2.22
我真的不明白为什么这不起作用,因为我似乎用 ldapsearch 进行了相同的搜索,但它却起作用了?O_o
答案1
您的 AuthLdapUrl 是错误的格式为 ldap://host:port/basedn?attribute?scope?filter - 或者更具体地说是 ldapi:///ou=Executive,dc=psikon,dc=net?cn?one