我在 RHEL 6 上有一个 Apache 服务器,它使用我们的活动目录进行身份验证,当我们添加了一个新的“LocationMatch”
AuthLDAPURL ldap://ad.company.com/DC=ad,DC=company,DC=com?samaccountname?sub?(memberOf=CN=RnD,CN=Users,DC=domain,DC=com)
在这个位置我们得到错误 500
在其他位置匹配上:
AuthLDAPURL ldap://ad.company.com:389/OU=MA,DC=ad,DC=company,DC=com?samaccountname
它运行完美。
答案1
我今天遇到了完全相同的问题,如果没有“ou=”,AuthLDAPURL 将返回 500 错误。
终于找到了一个网址:http://clabs.org/blog/RawStuff
其中提到:“
如果您需要针对不同的 OU 进行身份验证,则有两种选择。理想情况下,只需将 ldap url 更改为从根目录运行即可:
AuthLDAPURL "ldap://eiadserver1.einstruction.com:389/DC=einstruction,DC=com?sAMAccountName?sub?(objectClass=user)"
但是,对于 Active Directory,这似乎不起作用,因为除了搜索结果之外,它还会返回对其他目录分区的引用,而 Apache 无法理解这些或类似的东西。已为此提交了一个错误,报告中包含一个补丁。
但是,如果您的 Active Directory 配置了全局目录(通常在端口 3268 上),那么您可能能够获得需要工作的查询:
AuthLDAPURL "ldap://eiadserver1.einstruction.com:3268/DC=einstruction,DC=com?sAMAccountName?sub?(objectClass=user)"
“
我检查了我们的 AD 服务器,它正在监听端口 3268,所以我更改了它,它确实解决了这个问题。