Apache上的LDAP身份验证拒绝有效的凭据


0

我试图将LDAP与专用于SVN存储库的Apache 2.4服务器链接,因此我使用Apache mods dav_svnauthnz_ldap。LDAP本身可以正常工作。

我可以设法将服务器与管理员DN绑定,并搜索所需的用户。

连接时,如果用户不存在,则为[No such object]错误(是!)。但是,如果用户存在,则即使密码正确,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的唯一配置是ports.conf中的“ Listen 443

您对问题是什么有想法吗?我已经搜索了一段时间,并且我需要尽快进行这项工作。

感谢您的阅读(对不起,英语不好)

-------编辑:其他详细信息

  • 这是我的整个代码

  • 为了清楚起见,我仅更改了域,路径,DN名称和bindDN密码。

  • 我有同样的结果来改变的时候uidcn

  • 这是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 "("

您的用户dn是什么?同样,转储流量对于理解错误是非常有用的,尤其是因为您没有在ldap和apache之间加密任何内容时。您正在使用哪个目录服务器?
砸死

@stoned用户DN类似于“ cn = mr.myself,ou = gggg,ou = aaaa,dc = company,dc = fr”
Irhala

尝试更换uidldap://my_ldap_ip:port/ou=aaaa,dc=company,dc=fr?uid?subcn。您可以转储apache和ldap之间的通信吗?另外,这是您的真实代码,还是您跳过了具有不同身份验证部分的代码?
砸死

@stoned这是我的整个代码,为清楚起见,我仅更改了域,路径,DN名称和bindDN密码。更改uidcn
Irhala,2015年

我尝试使用mod_dumpio,但是在auth_ldap authenticate : using URL ldap://....[Invalid credentials]
Irhala

Answers:


1

谢谢您的帮助。

这是有效的配置,问题出在我们的LDAP中。我重置了密码,一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.