我需要为研究生院的实验室设置 SVN 和 Trac。我们有一台运行 Windows Server 2003 的机器,我希望使用它。我们真正需要的一件事是通过登录 Windows 域进行身份验证。学校使用 AD 在一个域上进行设置。我以前从未做过这样的事情,所以有人能告诉我这有多难/是否可行/如何做到吗?
谢谢
答案1
虽然我不确定这是否正是你想要的,但我使用了一些 BitNami 的自包含自包含堆栈我自己以前也用过,他们在处理脏活方面做得很好。他们有 Subversion 和 Trac 模块,所以你只需要安装这两个模块,然后更改配置文件来处理 Windows 身份验证。此外,由于 BitNami 堆栈使用 Apache 来提供 Trac 安装,因此很容易按照上面 proy 提供的链接操作。
答案2
答案3
已经是很好的链接(尤其是 proy),但真实的例子也许会有所帮助。
这是用于 Windows(XP)服务器的 httpd.conf 的一些部分,带有旧的 2.2.11 apache。
<...>
# Dynamic Shared Object (DSO) Support
<..>
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule sspi_auth_module modules/mod_auth_sspi.so
<...>
# provides list of repo with anonymous access
<Location /svn>
DAV svn
SVNParentPath "C:/data/repositories/"
SVNListParentPath on
SVNIndexXSLT "/svnindex.xsl"
SVNAutoversioning on
</Location>
<Location /svn/>
# Checked access for a deeper look
# for single repository configuration (access right, etc), use a more specific entry in 'Location',
# and use 'SVNPath "<path to repository>"' instead of 'SVNParentPath
DAV svn
SVNParentPath "C:/data/repositories/"
SVNListParentPath on
# for web browsing
SVNIndexXSLT "/svnindex.xsl"
SVNAutoversioning on
# --- windows authentication
AuthName "a nice, friendly and informative message"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain <YOUR_DOMAIN>
SSPIUsernameCase lower
# let non-IE client authentification (YES)
SSPIOfferBasic On
# comment the next line if you want to keep domain name in userid string passed down to mod_authz_svn
SSPIOmitDomain On
Satisfy Any
Require valid-user
# specific access control policy enforced by mod_authz_svn
AuthzSVNAccessFile "C:/controls/svnaccesspolicy.private"
</Location>
...
# And the config for a series of Trac sites
# No authentication for read only
<Location /bugs>
SetHandler mod_python
# Date and Time localization, with the standard (fast)cgi
SetEnv LC_TIME "fr_CH"
SetEnv PYTHON_EGG_CACHE "C:/cache/egg"
# Date and Time localization, with the modpython
PythonOption TracLocale "French_Switzerland"
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir "C:/data/trac"
PythonOption TracUriRoot /bugs
</Location>
<LocationMatch "/bugs/[^/]+/login">
SetEnv LC_TIME "fr_CH"
SetEnv PYTHON_EGG_CACHE "C:/cache/egg"
AuthName "Another nice and informative message"
AuthType SSPI
# NT Domain auth config
SSPIAuth On
SSPIAuthoritative On
SSPIDomain <YourDomain>
SSPIUsernameCase lower
SSPIOfferBasic On
SSPIOmitDomain On
# following line squishes bug #1168 if IE has troubles editing wiki pages.
SSPIBasicPreferred On
BrowserMatch "MSIE 6\.0; Windows NT 5\." nokeepalive
BrowserMatch "MSIE 7\.0; Windows NT 5\." nokeepalive
# and this one is a tentative to solve some login issue with IE7 (http://trac.edgewall.org/ticket/4560#comment:22)
SSPIOfferSSPI off
SSPIPerRequestAuth On
# Satisfy Any
Require valid-user
</LocationMatch>
<snip>
如您所见,两个站点可以使用相同的方式查询 DC 进行验证。
请注意,这是旧服务器 (winXp) 的配置 - 可能有点过时,并且不使用 ssl,而您的情况可能需要 ssl。此外,trac 和 subversion 都是“手动”安装的(即不是集成环境) - 当出现一些问题时,这也是很好的(您会更好地知道将手指放在哪里)。