我正在尝试将我的 LDAP 与专用于我的 SVN 存储库的 Apache 2.4 服务器链接起来,因此我使用 Apache modsdav_svn和authnz_ldap。LDAP 可以自行正常工作。
我可以设法将服务器与管理员 DN 绑定,并搜索我需要的用户。
连接时,如果用户不存在,则会出现 [无此对象] 错误(耶!)。但是,如果用户存在,LDAP 始终会返回 [无效凭据] 错误,即使密码正确。
这是 Apache error.log 的结尾
[authnz_ldap:debug] [pid 9243:tid 2990508864] mod_authnz_ldap.c(516): [client ::1:46639] AH01691:
auth_ldap authenticate: using URL ldap://my_ldap_ip:port/ou=aaaa,dc=company,dc=fr?uid?sub
[ldap:debug] [pid 9243:tid 2990508864] util_ldap.c(379): AH01278:
LDAP: Setting referrals to On.
[authnz_ldap:info] [pid 9243:tid 2990508864] [client ::1:46639] AH01695:
auth_ldap authenticate: user mr.myself authentication failed; URI /svn/ [ldap_simple_bind() to check user credentials failed][Invalid credentials]
[auth_basic:error] [pid 9243:tid 2990508864] [client ::1:46639] AH01617:
user mr.myself: authentication failure for "/svn/": Password Mismatch
这是我的配置文件
<VirtualHost domain:443>
ServerName domain
SSLEngine On
SSLCertificateFile /path/to/ssl/cert.pem
SSLCertificateKeyFile /path/to/ssl/key.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
<Location /svn>
DAV svn
SVNParentPath /path/to/svn/repositories
SVNListParentPath ON
AuthType Basic
AuthName "a nice message"
AuthBasicProvider ldap
AuthLDAPURL ldap://my_ldap_ip:port/ou=aaaa,dc=company,dc=fr?uid?sub
AuthLDAPBindDN cn=mr-admin,ou=cccc,ou=bbbb,dc=company,dc=fr
AuthLDAPBindPassword clear_password
<RequireAll>
Require valid-user
Require ssl
Require ldap-group cn=svngroup,ou=ffff,ou=eeee,ou=dddd,dc=company,dc=fr
</RequireAll>
</Location>
</VirtualHost>
除了这个文件之外,我添加到 Apache 的唯一配置是“收听 443“在 ports.conf 中
你知道问题出在哪里吗?我已经搜索了一段时间了,我需要尽快解决这个问题。
感谢阅读(抱歉我的英语不好)
------- 编辑:附加详细信息
这是我的全部代码
为了清楚起见,我只更改了域、路径、 DN 名称和 bindDN 密码。
当我
uid
改成cn
以下是 ldapsearch 的结果
。
ldapsearch -x -H ldap://my_ldap_ip:port/ -D cn=mr.myself,ou=gggg,ou=aaaa,dc=company,dc=fr -w 'p4(sSwo]rd' -v
ldap_initialize( ldap://my_ldap_ip:port/??base )
ldap_bind: Invalid credentials (49)
ldapsearch -x -H ldap://my_ldap_ip:port/ -D cn=mr.myself,ou=gggg,ou=aaaa,dc=company,dc=fr -w p4(sSwo]rd -v
bash: syntax error near unexpected token "("
答案1
谢谢您的帮助。
这是有效配置,问题出在我们的 LDAP 中。我重置了密码,一切正常。