星期二, 3月 31, 2009

Subversion+Apache的NTLM/SSPI認證

簡單地說明原因,公司的Subversion Repository要用NTLM認證,我在Windows上用Apache架SVN Server。
當然先下載Apache 2.2和對應Apache 2.2的Subversion,接著下載mod_auth_sspi
,modules和bin都放好應該有的檔案後,在 httpd.conf 裏加上
LoadModule sspi_auth_module modules/mod_auth_sspi.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
接下來要設定權限,找到的範例要用 AuthzSVNAccessFile ,但我怎麼設定都不對,所以把Require user改成Require group,在 httpd.conf 設定如下
<Location /projectrepository>
DAV svn
SVNPath E:/projectrepository
AuthType SSPI
AuthName "Project Repository"
# Require valid-user
Require group "網域名\群組名" "網域名\群組2"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain 網域名
SSPIOfferBasic On
# AuthzSVNAccessFile E:/projectrepository/svnaccess.txt
</Location>
若有先進願提供正確的SSPI AuthzSVNAccessFile範例,不勝感激。
參考資料: http://www.wretch.cc/blog/mogula/22956644

1 則留言:

maTT cHEn 提到...

我的Subversion 設定如下:

<Location /svn/>
DAV svn
SVNParentPath C:\svn_repository
SVNListParentPath On

AuthName "SVN Auth"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain MyDomain
SSPIOfferBasic On
Require valid-user
AuthzSVNAccessFile C:\svn_config\AuthzSVNAccessFile.txt
</Location>

跟你不同的大概是 Require valid-user 是在指定domain之後

另外 AuthzSVNAccessFile 的內容長這樣

[groups]
adm = MyDomain\matt
dev = MyDomain\mary, MyDomain\john

[/]
@adm = rw
@dev = r
* =

[folder1-in-svn-root:/]
@dev = rw
* =

[folder2-in-svn-root:/]
MyDomain/john = rw
* =

[folder2-in-svn-root:/sub-folder]
MyDomain/mary = rw
@dev = r
* =