限制特定域中的 Windows 用户访问 WebSVN

限制特定域中的 Windows 用户访问 WebSVN

我正在尝试在 VisualSVN 安装之上安装 WebSVN。VisualSVN 设置为使用 Windows 身份验证,来自域 CLIENT 和 DEV 的用户可以访问站点的不同区域。CLIENT 中的用户被拒绝 root 访问权限(通过 SVN 界面),并被授予对存储库中特定路径的访问权限。DEV 中的用户可以访问所有内容。当通过其 Web 界面或 TortoiseSVN 存储库浏览器访问 VisualSVN 时,此方法可正常工作。

我能够运行 WebSVN,并且它会在授予访问权限之前验证是否提供了有效的域用户凭据(来自任一域)。但是,一旦提供了有效的凭据,它就会向所有用户授予对所有内容的访问权限。

我尝试了VisualSVN/conf/httpd-custom.conf文件中不同的设置变体,但都无法解决这个问题。理想情况下,WebSVN 会提供与 VisualSVN 相同的访问权限。但是,我可以完全阻止所有 CLIENT 域用户访问 WebSVN。

conf文件的当前状态是:

LoadModule php5_module "c:/php/php5apache2_2.dll"
LoadModule authz_user_module bin/mod_authz_user.so
LoadModule sspi_auth_module bin/mod_auth_sspi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3 

PHPIniDir "C:/php"

<IfModule dir_module>
   DirectoryIndex index.html index.php 
</IfModule>

<Location /websvn/>  
  SVNListParentPath on
  SVNParentPath "D:/Repositories/"  

  AuthName "SVN Server"
  AuthType SSPI
  SSPIAuth On
  SSPIAuthoritative On
  SSPIDomain DEV

  require valid-user
</Location> 

(此设置旨在仅允许访问 DEV 域的成员,隐式排除 CLIENT 域 - 但是,任何一种方法的解决方案都将受到欢迎和接受)。

答案1

以下是我最终将用户限制为特定域中用户的方法:

<Location /websvn/> 
  AuthName "SVN Server"
  AuthType SSPI
  SSPIAuth On
  SSPIAuthoritative On
  SSPIDomain DEV
  SSPIOfferBasic On
  SSPIOmitDomain On

  require group DEV\Group1
  require group DEV\Group2
</Location> 

关键是使用该require group行来说明域中的哪些特定组应该能够获得访问权限。require valid-user我之前尝试的该行只是验证它是否是有效用户,但没有检查用户的域。

相关内容