我需要為我研究生院的實驗室設定 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。另外,trac 和 subversion 都是「手動」安裝的(即不是整合環境)——當出現一些問題時這也很好(你會更好地知道該把手指放在哪裡)。