本格堅守四不一沒有政治主張:不知道、不清楚、不瞭解、不明白、沒有我的事!
[ start | index | login ]

整合 Subversion、Apache 與 Active Directory

Created by Ada. Last edited by Ada, 2 years and 19 days ago. Viewed 5,031 times. #2
[diff] [history] [edit] [rdf]
labels
Parent:Subversion
attachments

整合 Subversion、Apache 與 Active Directory

實作 Subversion 檔案庫自動備份機制 一文中曾經介紹了如何對 Subversion 檔案庫進行自動備份,也在同一篇文章中介紹了如何讓 Subversion 多檔案庫之間共用同一份設定檔的方式。又鑑於日前已成功 整合 Apache 與微軟 Active Directory 進行身份認證,那麼把 Subversion 一併整合到 Apache 下並使用 AD 進行身份認證似乎是個不得不的決定?

不過,在進行這個移轉作業前有個影響必須瞭解: 存取設定檔必須重新設定 ,這是因為透過 HTTP 協定存取 Subversion 時會有和 SVN 協定有個不一樣的路徑設定,此部份容後再談。

在此先複習一下 實作 Subversion 檔案庫自動備份機制 的檔案庫設定。該文將所有的檔案庫分成兩大類分別依性質建置於 docs/ 或 projects/ 目錄下,而這兩個目錄則共存於 /home/svn 下,其 owner 為 svn 。

svn@myhost ~ $ tree -L 2 /home/svn
/home/svn
|-- authz
|-- commit.log
|-- docs
|   |-- resume
|   `-- svntest
|-- initRepos.sh
|-- passwd
|-- projects
|   |-- adsl
|   |-- perl
|   `-- scripts
|-- svnBackup.sh
`-- svnserve.conf

8 directories, 5 files

這邊有幾個重要資訊:

  1. /home/svn/docs 及 /home/svn/projects 是檔案庫的 Parent Path ,而 docs/ 及 projects/ 則為 Apache 的第一層目錄。
  2. Subversion 原本的存取權限設定檔為 /home/svn/authz,這部份沒有改變。
整個驗證重點 疑似 如下:
  1. Apache 檢測指定網址必須進行 LDAP 認證
  2. Subversion 透過 Apache 的認證結果決定是否可存取相關檔案

設定 Apache 使用 LDAP 進行身份驗證

指定 Apache 透過 LDAP 進行身份驗證的詳細說明請參考 Apache 整合微軟 Active Directory 做身份認證 一文之說明,完整設定如后,說明如下:
  1. 與 LDAP 有關之設定可直接登錄在 /etc/httpd/conf.d/authz_ldap.conf 下。
  2. /docs 及 /projects 網址目錄將分別對應到 /home/svn/docs 及 /home/svn/projects 下之所有檔案庫。
<Location /docs>
  AuthzLDAPMethod        ldap
  AuthzLDAPAuthoritative on
  AuthzLDAPServer        ads.company.net.tw:389
  AuthzLDAPUserBase      "OU=單位名稱,OU=使用者帳號,DC=company,DC=net,DC=tw"

AuthzLDAPUserKey sAMAccountName AuthzLDAPUserScope subtree AuthzLDAPBindDN ldap@company.net.tw AuthzLDAPBindPassword ldapPassword </Location>

<Location /projects> AuthzLDAPMethod ldap AuthzLDAPAuthoritative on AuthzLDAPServer ads.company.net.tw:389 AuthzLDAPUserBase "OU=單位名稱,OU=使用者帳號,DC=company,DC=net,DC=tw"

AuthzLDAPUserKey sAMAccountName AuthzLDAPUserScope subtree AuthzLDAPBindDN ldap@company.net.tw AuthzLDAPBindPassword ldapPassword </Location>

設定 Apache 啟用 Subversion WebDav 模組

  1. 與 Subversion 有關的設定統一放置於 /etc/httpd/conf.d/subversion.conf 檔案中。
  2. Apache 須透過 mod_dav_svn 模組與 Subversion 配合,故安裝之。
    yum install -y mod_dav_svn
  3. 在指定網址目錄上啟用 WebDav 支援,如後述。
  4. 調整 /home/svn 下檔案庫的擁有者屬性,如下例:
    chown -R svn:apache /home/svn
  5. 確保 Apache 擁有可以寫入檔案庫的權限,如下例:
    chmod -R g+rwx /home/svn/docs; chmod -R g+rwx /home/svn/projects
  6. 重新啟動 Apache 並檢視可否瀏覽檔案庫內容。
<Location /docs>
   # 啟用 SVN WebDav 支援
   DAV                   svn
   # 檔案庫目錄所在目錄
   SVNParentPath         /home/svn/docs
   # 是否可瀏覽檔案庫目錄所在目錄,等於可否瀏覽所轄檔案庫
   SVNListParentPath     on
   # 存取權限設定,指定此參數會讓 SVNListParentPath 失效
   #AuthzSVNAccessFile   /home/svn/authz
   # 基本認證模式
   AuthType              Basic
   # 視窗提示訊息
   AuthName              "Version Control System - Documents"
   # 通過驗證都才能瀏覽此目錄
   require               valid-user
</Location>

<Location /projects> DAV svn SVNParentPath /home/svn/projects SVNListParentPath on

#AuthzSVNAccessFile /home/svn/authz

AuthType Basic AuthName "Version Control System - Projects" require valid-user </Location>

Subversion 存取權限設定說明

網路上有『使用 LDAP 驗證機制後,即無法對檔案目錄進行控管』的說法,對於此點個人認為可能有所誤會。

系統管理者仍然可以在 Apache 設定檔中透過 AuthzSVNAccessFile 指定 Subversion 存取設定檔,只是一旦設定此屬性後 SVNListParentPath 的設定將自動變成 off。

另外對於 /home/svn/authz 檔的設定方式也有所改變,原本指定檔案庫的方式為 [projects/perl:/],但改用 Apache 配合 WebDav 時則變成 [perl:/] ,整個設定範例如下:

[perl:/]
ada = rw
asa = rw

[adsl:/] ada = rw asa = rw

no comments | post comment
【搜尋】

【求助】

  1. 如何指定格式化的文字
  2. 如果字太小
【SnipSnap 強化方案】
>>SnipIt 誕生
>>功能討論
>>功能確認

< September 2010 >
SunMonTueWedThuFriSat
1234
567891011
12131415161718
19202122232425
2627282930

【RSS 訂閱】




【雜想分類區】
美食小吃
生活雜想
職場遭遇戰
休閒娛樂
台北居、大不易
錯誤正在橫行中
廣告異聞錄
神秘事件簿
電影
健康管理
資訊電腦
科高地球
手機應用
新聞馬後炮
動漫世界
管理眾人之事
專案管理
歌曲歌詞
嘸爽啦!
部落格記錄
惡搞裝笨耍白爛
歧視非IE用戶之網頁
關於我
CSS
RSS

【與 Ada 聯絡】

【有趣的 Blog】
>>什麼都破,什麼都爛,什麼都不奇怪
>>酪梨壽司的日記
>>去吧!錯誤特攻隊!
>>隨裕而安
>>荒謬大觀
>>網路黑貓
>>瑞克梅添涼 DALIREAL
>>鳥毅的blog
>>潛艦 - >>反垃圾信
>>窮留學生懶人食譜
>>約耳談軟體

【網路貼紙】
XHTML 1.0 validated CSS validated
RSS 2.0 validated Powered by SnipSnap
Powered by Gentoo Linux
網站使用 UTF-8 編碼 網站所在地-台灣
Onion Club 洋蔥酷樂部 Powered By PostgreSQL
我是台灣人

【網路同盟】
怠墮管理者同盟

【PCDVD 七八區 RSS】




【PCDVD 疑雜區 RSS】




【網路串連】











【參訪團】

snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt