间歇性Subversion(针对AD的Apache auth_ldap)失败

问题:
我的颠覆已经开始停止工作定期(每一个小时或两个),这似乎已经开始时,一个域控制器失败(我还没有做元数据清理)。 但是,失败的不是在AuthLDAPUrl目录中指定的那个。

我的问题:
有没有人有任何想法的可能是什么原因造成这种情况,有可能是auth_ldap联系人的域控制器发送一个响应告诉auth_ldap使用现在已经走了的域控制器?

另外,有没有办法将AuthzSVNAccessFile中的用户的所有ldap身份validation密码转储为本地文件作为临时解决方法?

它看起来像我使用全球目录,港口3268,我会更好的使用636或389。这是什么意思,如果我使用其中的一个,而不是? 我的其他一些DC没有在3268上监听,但在其他端口上,所以也许我可以指定还原剂AuthLDAPUrls?

参考资料:
错误信息:

[warn] [client 192.168.80.80] [22364] auth_ldap authenticate: user aUserName authentication failed; URI /svn/someRepo/trunk [LDAP: ldap_simple_bind_s() failed] [Can't contact LDAP server] 

auth_ldapconfiguration:

 <Location /svn> DAV svn SVNParentPath /var/svn AuthzSVNAccessFile /etc/httpd/authfiles/authz_svn_access AuthType Basic AuthBasicProvider ldap AuthName "Company's Software Repository" AuthLDAPBindDN "[email protected]" AuthLDAPBindPassword "someSuperSecretPassword" AuthLDAPUrl "ldap://pdc.myDomain.com:3268/dc=myDomain,dc=com?samAccountName?sub?(objectCategory=person)(objectClass=User)" Require valid-user </Location> 

使用端口3268指示LDAPsearch应该在“全域”执行,并且针对全局编录本身而不是特定的域控制器运行。

这可能是问题的一部分 – 切换到636或389将切换到仅针对复制到本地LDAP服务器/域控制器的对象运行的LDAP查询。

我认为“正确”的解决scheme是简单地清理AD – 缺less的DC可能会导致各种其他同步问题。

至于转储密码 – 具有良好的LDAP目录,密码属性是只写的(SunONE,Novell eDirectory和MS Active Directory都是这样做的),特别是为了防止人们倾倒它们并滥用它们。

如果是紧急情况,可以使用像pwdump这样的工具从域控制器SAM转储密码,然后用彩虹表或其他东西来破解它们,但是我认为如果你只是清理了元数据和森林,那么你会没事的。

你使用的是什么版本的Apache和SVN? 有早期版本的Apache和ldap / AD已知的问题…在2.2.8(我相信)修复http://www.apache.org/dist/httpd/CHANGES_2.2