开心园地

导航

linux下让SVN Server支持多个LDAP服务器

首先要确保 modules/mod_authn_alias.so这个模块在apache目录里,

1) 如果没有的话,那么下载apache源码,编译下

cd /httpd-2.2.19/modules/aaa/

/usr/local/apache/bin/apxs -c -i -a mod_authn_alias.c

2)编译好后,会自动生成 modules/mod_authn_alias.so并且修改httpd.conf加载这个so.

3)修改httpd.conf如下

------------

<AuthnProviderAlias ldap domain1>

  AuthLDAPBindDN "user1@domain1.com"
  AuthLDAPBindPassword abcd1234
  AuthLDAPURL ldap://10.192.176.20:3268/DC=domain1,DC=com?sAMAccountName?sub?(objectClass=*)

</AuthnProviderAlias>

<AuthnProviderAlias ldap domain2>
    AuthLDAPURL "ldap://10.192.240.10:3268/DC=domain2,DC=com?sAMAccountName?sub?(objectClass=*)" NONE
    AuthLDAPBindDN "user2@domain2.com"
    AuthLDAPBindPassword abcd123456
</AuthnProviderAlias>

        <Location "/svn/"> #后面加上/可以增加跟目录浏览功能,甚是方便
                DAV svn
                SVNParentPath /svnroot/repos
                SVNListParentPath On
                AuthzSVNAccessFile /svnroot/conf/authz
                AuthUserFile "/usr/local/apache/conf/passwdfile"

                AuthBasicProvider domain1 domain2
                AuthType Basic
                AuthzLDAPAuthoritative on
                Require valid-user

                AuthName "SVN Server"
        </Location>

4)重启动apache,一切OK.

好处:支持多个Windows AD服务器,某种程度上讲比Visual SVN Server还要好用。使用Visual SVN Server某些版本,首先服务器本身必须加入到某个LDAP Server,这个是比较不合理的。而且Visual SVN 也不支持多个域。

 

posted on 2012-10-29 17:32  开心园地  阅读(702)  评论(1编辑  收藏  举报