The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

CollabNet Subversion Edge 安裝筆記 (2):整合 AD 網域篇

延續前天的【CollabNet Subversion Edge 安裝筆記 (1):基本安裝設定篇】文章,此篇主要來講解如何正確設定 CollabNet Subversion Edge 與 Active Directory 網域整合 (或其他 LDAP 目錄服務)。雖然在 CollabNet Subversion Edge 裡只有一頁的 LDAP 設定,但若遇到對 LDAP 不是非常熟悉的人來說,要設定好這頁還真不太容易,所以本篇文章也會提到一些如何找出相關資訊的技巧。

我們先來看看以下 LDAP 認證的設定畫面,要啟用 LDAP 認證必須先勾選 用 LDAP 服务器进行 LDAP 认证,然後才會出現 LDAP 的設定表單,不過這些欄位真的很難懂,讓我來逐一解釋吧:

LDAP 安全级别 ( LDAP Security Level )

  • 選擇 NONE 即可

LDAP 服务器主机 ( LDAP Server Host )

  • 請輸入 網域主控站 (Domain Controller) 的 FQDN 地址或 DC 的 FQDN 位址。
  • 設定範例:miniasp.localdc1.miniasp.local

LDAP 服务器端口 ( LDAP Server Port )

  • 使用預設的 389 是沒問題的,不過你也可以考慮切換到 3268 ( Global Catalog )

LDAP 基础 DN ( LDAP Base DN )

  • 所謂的 DN 代表的是 Distinguished Name (專有名稱),用來代表一個 LDAP 物件的名稱 / 路徑
  • 一個範例的 DN 為:"CN=Administrator,CN=Users,DC=miniasp,DC=local"
  • Base DN 代表的是搜尋 LDAP 物件的基底位址,例如:"CN=Users,DC=miniasp,DC=local"
  • 如果你填寫的 LDAP Base DN 是 "CN=Users,DC=miniasp,DC=local" 的話,代表的是當使用者輸入帳號、密碼認證時,會從 "CN=Users,DC=miniasp,DC=local" 往下開始搜尋。
  • 然而對管理者來說,最難的就是如何找出 DN 了,因為大多數的人並不瞭解 DN 為何物,所以也不知道怎樣才能查出 DN,這裡我以 Active Directory 為例,只要在網域主控站的電腦輸入以下指令,即可快速查出某個使用者的 DN,相對的你也可以取出部分的 DN 位址當成 Base DN 來用:
    dsquery user -samid "administrator"
  • 透過上述指令執行後,會直接查出帳號 administrator 的 DN 位址,如下範例:
    "CN=Administrator,CN=Users,DC=miniasp,DC=local"

LDAP 绑定 DN ( LDAP Bind DN ) 

  • 由於 CollabNet Subversion Edge 要與 AD/LDAP 做整合,所以當在執行使用者身份認證時,必然需要進 LDAP 中取得這些 LDAP 物件的資料,如此一來才能幫使用者驗證帳號、密碼是否正確。
  • 這裡的 LDAP Bind DN 講的就是「在 AD 裡任何一位使用者的 DN 位址」,隨便選一位或特別建立一位即可,且無須加入到任何管理者群組之中,只要一般使用者即可。
  • 取得特定帳號的 DN 可參考上述 dsquery 指令的用法範例。

LDAP 绑定密码 ( LDAP Bind Password )

  • 這裡輸入的必須是 LDAP 绑定 DN ( LDAP Bind DN ) 這個帳號的「密碼

LDAP 登录属性 ( LDAP login Attribute )

  • 請輸入 sAMAccountName
  • 這裡代表的是,當 CollabNet Subversion Edge 透過 LDAP Bind DN 與 LDAP Bind Password 連接 LDAP 之後,當在比對 LDAP 物件時,會以「什麼屬性」當成「帳號」的比對依據。
    sAMAccountName 所代表的正是「使用者帳號」。
  • 如果此欄位不輸入的話,預設會去比對 LDAP 物件中的 uid 屬性。

LDAP 搜索范围 ( LDAP Search Scope )

  • 這裡有兩個選項,分別為 sub 與 one,一般我們會選用預設的 sub 代表做帳號比對時會搜尋 Base DN 下所有的樹狀的子系 OU 節點。

LDAP 筛选 ( LDAP Filter )

LDAP 服务器证书验证 ( LDAP Server Certificate Verification )

  • 验证 LDAP 服务器证书。
    • 若你使用 SSL/TLS 憑證的方式跟 LDAP 連接,如果勾選這個選項會讓你的 CollabNet Subversion Edge 在連接前會先去驗證 LDAP 伺服器上的憑證是否有效。
  • Allow LDAP users to access the management console
    • 透過 LDAP 驗證成功登入的使用者是否能使用這個主控台介面

Console LDAP Authentication Helper Port:

  • 不需要變更此 Port 的內容,保留預設值即可。

 

如果你能依照上述說明逐步設定,相信你一次就能把整合 AD 認證的設定給完成!

 

其他注意事項

  • AD 使用者在登入時,請直接輸入「帳號」就好,不要輸入 user@miniasp.local 或 miniasp\user 等格式。
  • 可以認證通過不一定代表有 SVN 的存取權限,你可以查閱前篇文章設定存取權限 部分看如何設定權限,否則你就必須撰寫較為複雜的 LDAP Filter 或設定適當的 Base DN 來篩選過濾掉哪些不允許登入 CollabNet Subversion Edge 的使用者。
  • 查詢 DN 的方式除了用 dsquery 查詢外,也可以使用 ADSI Edit 工具來查詢,此工具已經內建於 Windows Server 2008 之中 (必須先安裝 ADDS 角色),只要若要在 Windows Server 2003 以前的版本必須先安裝 Windows Server 2003 Service Pack 2 32-bit Support Tools 才能在 C:\Program Files\Support Tools 目錄下找到 adsiedit.msc 這個工具!

 

§ 以下是一段設定範例的圖示,僅供參考:

 

 

相關連結