通过Windows域loginvalidationSVN用户

我刚刚在我的大学为我的实验室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。