我刚刚在我的大学为我的实验室build立了一台SVN服务器(在Windows XP机器上)。 现在,任何人都可以匿名访问和提交存储库。
我想只允许我们的AD域中的某些用户被允许访问存储库。 如果可能,我也希望密码与域的密码相同。
这可能吗?
我安装了mod_auth_sspi并使用以下命令configuration了我的httpd.conf:
DAV svn SVNPath“R:\ SVN”
AuthName "SVN Server" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain AD SSPIOfferBasic On Require valid-user AuthzSVNAccessFile "r:/svn/svnaccess.conf"
和在svnaccess.conf中:
[groups] dev = AD\user1, user1, AD\user2, user2 [/] @dev = rw
如果你使用Apache,是的。 确保已安装mod_auth_sspi。 然后,使用适当的设置configuration目录:
<Directory /> Options FollowSymLinks AllowOverride None AuthType SSPI AuthName "YOURDOMAIN" SSPIAuth On SSPIAuthoritative Off SSPIDomain dc.yourdomain.com SSPIOmitDomain Off SSPIOfferBasic On SSPIUsernameCase lower Require group "YOURDOMAIN\AuthorizedGroup" </Directory>
在您的svnpasswd文件中,您只需指定具有完整域名的用户
developers = mydomain\myuser [/] @developers = rw
我希望有所帮助。
你没有明确说明如何提供Subversion,但基于你的标签,我假设Apache。 使用Apache 2.2通过AD进行身份validation来提供Subversion非常简单。
在您的Apacheconfiguration中,您需要将适当的Auth参数添加到存储库的位置块。
例如(限制读写访问):
<Location /repo> DAV svn SVNPath /var/svn/repo AuthName "Subversion WebDAV" AuthType Basic AuthLDAPURL "<ldap_url>" AuthLDAPBindDN "<ldap_bind_dn>" AuthLDAPBindPassword "<password>" Require valid-user </Location>
您可能需要与您的ADpipe理员联系,为Apache设置一个服务帐户以用于连接到AD(如果您的AD要求您在执行search之前进行绑定)。
如果您希望允许匿名读取,并要求用户进行身份validation才能写入,请将上面的Require valid-user行replace为以下内容:
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
在Windows上托pipesubversion版本库的另外两个选项是SVNIsapi和Visual SVN。
SVNIsapi是IIS 6.0及以上版本的IIS插件。 AD安全由IIS提供。
Visual SVN捆绑了apache,svn和一个GUI工具来pipe理仓库。 AD安全性由apache模块提供,并通过GUI工具进行configuration。