我刚刚为我所在大学的实验室设置了一个 SVN 服务器(在 Windows XP 计算机上)。现在,任何人都可以匿名访问和提交存储库。
我想仅允许 AD 域中的某些用户访问存储库。如果可能的话,我还希望密码与域的密码相同。
这可能吗?
解决了
我安装了 mod_auth_sspi 并使用以下内容配置了我的 httpd.conf:
DAV svn SVN路径“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
答案1
如果您使用的是 Apache,那么答案是肯定的。请确保已安装 mod_auth_sspi。然后使用适当的设置配置目录:
<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
我希望这能有所帮助。
答案2
您没有明确说明如何提供 Subversion,但根据您的标签,我假设是 Apache。使用 Apache 2.2 通过 AD 身份验证提供 Subversion 非常简单。
在您的 Apache 配置中,您需要将适当的 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>
您可能需要与 AD 管理员沟通,为 Apache 设置一个服务帐户以用于连接到 AD(如果您的 AD 要求您在执行搜索之前进行绑定)。
如果您希望允许匿名读取,同时要求用户进行身份验证才能写入,请将Require valid-user
上面的行替换为以下内容:
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>