1

我们有一个使用 Apache 2.0 进行身份验证的 SVN 1.4 存储库;具体来说,用于mod-auth-sspi向我们的 Windows 域进行身份验证的模块。的相关部分httpd.conf如下所示:

<Location /svn>
    AuthType SSPI
    AuthName "My Subversion"
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain MYDOMAIN
    SSPIFixDomainCase On
    SSPIOfferBasic On
    Require group MYDOMAIN\MYDOMAINGROUP
</Location>

我们还有一个自动构建服务器,它需要从 SVN 获取源代码并构建它。自然,这需要构建服务器将有效的域凭据传递给 SVN/Apache。

今天,我们通过使用我自己的域凭据来做到这一点。这不是一个好主意,因为当我的域密码过期时,我可能会发生一些不好的事情或者我可能正在度假——整个自动构建过程将冻结。在域上为自动构建服务器创建一个特殊帐户目前不是一个选项,因为我在一家大公司工作,而且做这样的事情的繁文缛节是禁止的。

我想做的是将现有的 SSPI 身份验证方案保持不变,但在托管 SVN 的机器上创建一个本地帐户,并让自动构建服务器使用该本地帐户进行身份验证。换句话说,一个 SVN 存储库有两种不同的身份验证路径(SSPI + 本地帐户)。

那可能吗?我该怎么做?

4

2 回答 2

2

如果您想在 SSPI 身份验证之外提供基本身份验证,则需要在不同的 URL 下提供它,例如

  <Location /svn_pass>
    AuthType Basic
    AuthName "svn"
    AuthUserFile /etc/apache2/svnusers
    require valid-user
  </Location>

或者,您可以使用基于主机的授权,然后您也可以将其放入当前 URL,并指定“满足任何要求”。

于 2009-06-24T07:32:29.203 回答
0

另一种方法是代替多种身份验证方法,保留您已有的工作,并设置 svnserve 以便您的构建服务器拥有自己的凭据。

Subversion 将愉快地使用多种存储库访问方法工作。

于 2009-06-24T01:04:07.857 回答