Apache 在 Active Directory LDAP 身份验证期间显示 500 错误

Apache 在 Active Directory LDAP 身份验证期间显示 500 错误

我已将 Apache(在 Windows Server 上)设置为通过 Active Directory 对一个目录进行身份验证。配置设置如下:

<LocationMatch "/trac/[^/]+/login">

 Order deny,allow
 Allow from all
 AuthBasicProvider ldap
 AuthzLDAPAuthoritative Off
 AuthLDAPURL ldap://<ip-redacted>:3268/cn=Users,OU=MyBusiness,DC=<dc-redacted>,DC=local?sAMAccountName?sub?(objectClass=*)
 AuthLDAPBindDN       trac@<dc-redacted>.local
 AuthLDAPBindPassword "<password-redacted>"
 AuthType Basic
 AuthName "Protected"
 require valid-user

</LocationMatch>

通过观察 Wireshark,我发现当我访问该页面时会发送以下内容:

对于 AD 服务器:

bindRequest(1) "trac@<dc-redacted>.local" simple 

从 AD 服务器来看:

bindResponse(1) success 

我假设这意味着身份验证成功了……但 Apache 并不这么认为。它向我返回 500 服务器。Apache 日志显示以下内容:

[Thu Nov 18 16:21:12 2010] [debug] mod_authnz_ldap.c(379): [client 192.168.x.x] [7352] auth_ldap authenticate: using URL ldap://<ip-redacted>:3268/cn=Users,OU=MyBusiness,DC=<dc-redacted>,DC=local?sAMAccountName?sub?(objectClass=*), referer: http://192.168.x.x/trac/Trac/login
[Thu Nov 18 16:21:12 2010] [info] [client 192.168.x.x] [7352] auth_ldap authenticate: user  authentication failed; URI /trac/Trac/login [ldap_search_ext_s() for user failed][Filter Error], referer: http://192.168.x.x/trac/Trac/login

现在,该日志文件显示空白用户的身份验证失败。我感到很困惑。

知道我做错了什么吗...以及如何使 Apache 身份验证正常工作?:)

谢谢!

答案1

绑定成功,但这仅意味着"trac@<dc-redacted>.local"已确认拥有密码"<password-redacted>"。接下来,LDAP 库将搜索基本对话框收集的用户名和密码,并比较密码字段。这可能是您失败的原因,因为 (a) AuthLDAPURL (b) 用户名​​或 (c) 密码中的一个或多个存在问题。这对我来说是有效的,但到目前为止,只有未加密的版本(您正在使用);只要我尝试使用 SSL 或 TLS,就会出错...

相关内容