企業在引入 Rational Team Concert(RTC)、Rational Quality Manager(RQM)等基於 Jazz Team Server 的 Rational 產品的過程中,如何將新引入的 Rational Web 服務快速有效的與已有 IT 系統集成應用,將是企業 IT 人員面臨的首要問題。本文將重點解答這個問題,詳細講述如何在成功部署 Jazz Team Server 之後,實現 IT 系統已有的企業用戶管理系統(例如 LDAP)與 Jazz Team Server 用戶管理的集成。
Jazz Team Server 是一個基於 Java 的 Web 應用程序,它被封裝為一個 web 存檔文件(WAR 文件),伴隨 Rational Team Concert 1.0(簡稱 RTC1.0)一同發布。用戶通過將 Jazz Team Server 部署在應用服務器(例如,IBM WehSphere Application Server;Apache Tomcat)上來為 RTC 提供底層 Web 服務平台。 Jazz Team Server 將成為 IBM Rational 新一代產品的協作平台,為 RTC,RQM(Rational Quality Manager)以及 RRC(Rational Requirement Composer)提供 Web 服務。
但是,在企業引入 RTC、RQM 等基於 Jazz Team Server 的 Rational 產品過程中,如何將新引入的 Rational Web 服務快速有效的與已有 IT 系統集成應用,將是企業 IT 人員面臨的首要問題。本文將重點解答這個問題,詳細講述如何在在成功部署 Jazz Team Server 之後,實現 IT 系統已有的企業用戶管理(例如:LDAP)與 Jazz Team Server 用戶管理集成。
Jazz Team Server 的用戶管理機制
基於 Jazz Team Server 的 Rational 產品在運行過程中,用戶的認證管理與權限管理分別作為兩個獨立的部分進行管理。Jazz Team Server 將用戶認證工作剝離出去,交給 Jazz Team Server 運行所在的應用服務器(Application Server)實現。而 Jazz Team Server 本身只實現對用戶的權限管理,即對獲得認證的用戶進行授權管理。也就是說,Jazz Team Server 在為用戶提供服務的過程中對用戶的登錄密碼等信息是不可見的,Jazz Team Server 用戶的認證信息,例如用戶名,登錄密碼,電子郵件等注冊信息由 Jazz Team Server 外部的應用服務器或者為應用服務提供身份驗證功能的用戶目錄協議 LDAP 進行管理和維護。
Jazz Team Server 的用戶認證管理
Jazz Team Server 運行在應用程序服務器上,並且使用應用程序服務器提供的用戶認證管理機制,這樣作的好處是,第一,利用應用程序服務器來處理用戶認證,Jazz Team Server 將認證與授權分開管理,將用戶管理認證向外轉移,使得 Jazz Team Server 可以更專注於業務邏輯而不必關心用戶訪問安全。第二,可以利用應用服務器與企業常用的輕量級目錄訪問管理協議 LDAP 的集成接口實現 Jazz Team Server 與 LDAP 的集成,進而實現 Jazz Team Server 重用現有 IT 系統中的用戶,將 Jazz Team Server 與已有 IT 系統無縫連接。第三,將用戶認證管理置於應用程序服務器一級,使得管理員用戶可以在 Jazz Team Server 後台數據庫尚未配置可用的情況下仍然可以對 Jazz Team Server 進行服務配置,用戶權限配置等管理員操作。
下圖很好的說明了用戶向 Jazz Team Server 發送登錄請求時的用戶認證過程:
圖 1. 應用服務器實現 Jazz Team Server 用戶認證
當一個用戶向 Jazz Team Server 發送登錄請求時候,首先需要經過應用程序服務器用戶身份安全認證。如果認證沒有通過的話,那麼應用程序服務器直接向用戶返回錯誤的消息,不會繼續將該請求發送給 Jazz Team Server。圖 1 中的應用服務器安全認證采用的是 LDAP 集成方式,因此,應用服務器會將認證請求轉發給 LDAP 進行驗證。如果 LDAP 返回驗證通過,即用戶通過了應用程序服務器的認證,應用服務器則將此請求轉發給 Jazz Team Server 進行權限判斷處理。在用戶權限判斷處理中,Jazz Team Server 根據用戶名檢查用戶的角色及其被授予的權限,來判斷用戶對 Jazz Team Server 庫的讀寫管理等操作權限。
由此也可以看出。當用戶通過了身份驗證之後,該用戶的服務請求對 Jazz Team Server 都是只有用戶名而無密碼的。這也充分說明了 Jazz Team Server 將用戶身份安全驗證和用戶權限管理的完全剝離。
Jazz Team Server 的用戶權限管理
將用戶安全驗證的工作分離出應用本身之後,Jazz Team Server 對發送請求的用戶身份判斷就將集中於用戶權限判定上,允許請求用戶是否具有執行特定的操作的授權。Jazz Team Server 對用戶權限的管理分為兩部分,角色和授權。
第一步,角色與用戶的映射。基於 Jazz Team Server 的 Rational 產品在部署過程中,需要在應用服務器控制台中定義 Jazz Team Server 角色與用戶 / 用戶組的映射關系,即為每個 Jazz Team Server 用戶分配一個 Jazz Team Server 角色。這裡,Jazz Team Server 角色是預定義的,目前尚不支持客戶定制角色。
第二步,用戶授權。用戶僅僅具有某個角色是不夠的,還需要經過授權(Assign License)才可以執行權限限制范圍內的操作。Jazz Team Server 同樣預定義了四種授權類型,每種類型擁有有限個授權數量,即只有一定數量的數量用戶可以執行該類型定義的操作。擁有此類型授權的用戶就可以執行授權范圍內的操作。
當用戶請求被傳送到 Jazz Team Server 應用程序時,Jazz Team Server 就是通過上述兩個方面對該請求用戶的權限范圍進行判斷,進而確定該用戶是否有權發起當前服務請求。這樣 Jazz Team Server 就完成了對用戶請求的權限判斷。
目前 Jazz Team Server 支持的安全驗證方式
使用應用服務器進行用戶認證管理,既能充分利用應用服務器已有的用戶驗證能力,又有利於 Jazz Team Server 與常用的企業用戶目錄管理系統進行集成。因此,Jazz Team Server 所在的應用服務器所支持的用戶驗證方式都可以成為 Jazz Team Server 的用戶驗證方式。以 IBM WehSphere 應用服務器(WebSphere Application Server,簡稱 WAS)為例,WAS 支持四種用戶數據庫(User Account Repository)的身份驗證:聯合存儲用戶驗證,本地操作系統用戶驗證,LDAP 用戶驗證以及獨立的客戶數據庫的用戶驗證。因此,部署在 WAS 上的 Jazz Team Server 將同樣支持這四種用戶注冊數據庫驗證方式。
雖然應用服務器支持的用戶數據庫驗證方式千差萬別,但 Jazz Team Server 不可能分別為每種可能使用的驗證方式提供接口,因此, Jazz Team Server 將這些各不相同的外部用戶數據庫分為三類:Tomcat 用戶用戶數據庫驗證,LDAP 用戶驗證和非 LDAP 其他用戶數據庫驗證。
使用 Tomcat 用戶數據庫驗證作為 Jazz Team Server 身份安全驗證的方法是這三種驗證方式中最簡單易用的,並且配置工作量最小。但是由於它只適用於 Jazz Team Server 運行在 Tomcat 應用服務器上的場景,因此,受到應用服務器的限制而不具有通用性。
使用非 LDAP 其他用戶數據庫驗證方式適用於 LDAP 以外的應用服務器所能支持的其他的各種用戶數據庫驗證方式。例如上文提到的 WAS 支持的聯合存儲用戶數據庫,服務器本地操作系統用戶。這種用戶數據庫驗證方式使得 Jazz Team Server 可以與非 LDAP 管理的 IT 系統進行集成,增加 Jazz Team Server 用戶驗證的多樣性,擴大的 Jazz Team Server 的應用范圍。但是,如前所述,由於用戶數據庫的不確定性,Jazz Team Server 不能為每種用戶數據庫提供專用的集成接口,因此,需要用戶手動的將用戶數據庫中的已有用戶信息逐條的在 Jazz Team Server 數據庫中建立對應的用戶信息,增加了 Jazz Team Server 與目標系統集成時的配置工作量。當需要增加系統新用戶時,需要同時在用戶數據庫中和 Jazz Team Server 數據庫中分別建立該用戶的記錄信息並保持映射關系與信息同步,會導致 Jazz Team Server 使用過程中的維護成本加大。
LDAP 用戶驗證是目前企業級 IT 系統中最常用的用戶驗證方法,也是實現用戶身份認證與授權分離的理想工具。因此,下面的章節將詳細的介紹如何實現 Jazz Team Server 與 LDAP 用戶驗證集成,通過一步一步的圖例說明引導讀者完成集成配置。
基於 Jazz Team Server 的 Rational 產品與 LDAP 的集成
由前所述,Jazz Team Server 的用戶安全身份驗證是交由其所在的應用服務器完成的,因此 Jazz Team Server 與 LDAP 的集成是建立在應用服務器與 LDAP 集成的基礎之上的。本章將以 IBM WehSphere 應用服務器(WAS)為例,按照 WAS 安全配置,LDAP 設置以及 Jazz Team Server 安全配置的順序詳細描述部署在 WAS 上基於 Jazz Team Server 的 Rational 產品如何實現通過 LDAP 實現身份驗證的。
配置 WAS 安全性:
登錄 WAS 管理控制台 https://IP:9043/ibm/console/login.jsp,選擇“安全管理、應用程序和基礎結構”頁面,如圖 2 所示:
圖 2. WAS 管理控制台
在“安全管理、應用程序和基礎結構”頁面中,啟用管理和應用程序安全性,並將 LDAP 認證方式設置為當前的值,如圖 3 所示:
圖 3. 選擇 WAS 用戶管理類型
這樣,我們就把運行 Jazz Team Server 的應用服務器 WAS 配置為使用 LDAP 進行 WAS 用戶安全驗證。注意,此時尚未完成 LDAP 的參數設置,所以不要選擇“Apply”按鈕。當完成後續 LDAP 配置之後,才能完成配置,點擊“Apply”按鈕。
配置 LDAP
將 WAS 配置為 LDAP 驗證之後,下一步需要在 WAS 配置相應的 LDAP 信息。如圖 3 中的第二步所示,由此按鈕進入 LDAP 配置頁面。本小節中的截圖來自我們的一個應用實例,讀者可以根據自身環境的不同,做相應的更改。
第一,配置一般屬性。在 Host 域中填入 LDAP 管理員賬戶,LDAP 主機信息,端口號以及 DN 信息。如圖 4 所示:
圖 4. 為 WAS 配置 LDAP 信息
第二,打開“高級 LDAP 用戶注冊表設置”(圖 5),設置相應的屬性,例如用戶過濾條件,用戶組過濾條件等。此處需要設置用戶登錄時所使用的用戶名是什麼,如圖 6 所示,可以選擇使用 emailaddress 作為登錄用戶名。
圖 5. 高級配置
圖 6. 建立映射關系
第三,退出控制台,使用圖 4 中設置的 LDAP 管理員用戶名登陸 WAS,檢查是否能登陸成功。LDAP 管理員能成功登錄 WAS 控制台則表明上述配置已經成功的應用到 WAS 上了,可以繼續下面的步驟。
配置 Jazz Team Server 應用程序的安全性
LDAP 與 WAS 的集成配置成功後,需要為 Jazz Team Server 定義的角色進行用戶映射。
回到在 WAS 管理控制台,打開“企業應用程序 > jazz_war > 安全角色到用戶/組映射”屬性,如圖 7,選擇要配置的角色,為該角色添加用戶。這裡以配置 JazzAdmins 為例:
圖 7. Jazz Team Server 預定義角色列表
點擊查找用戶(組)按鈕,搜索 LDAP 中保存的用戶記錄,並將需要具有相應角色的用戶添加到右面的列表中,如圖 8 所示。
圖 8. 為 Jazz Team Server 角色填加用戶
點擊確定按鈕就可以看到角色 JazzAdmin 中已經映射了相應的用戶信息,如圖 9 所示。
圖 9. Jazz Team Server 角色中的用戶列表
用同樣的方法映射其他的角色並重啟 Jazz Team Server 應用程序,完成對 Jazz Team Server 角色的用戶映射。
Jazz Team Server Setup
完成 WAS 配置之後,最後一步就是完成 Jazz Team Server Setup。
首先打開 Jazz Team Server setup 的頁面:https://9.123.108.251:9443/jazz/setup,點擊用戶配置按鈕進入用戶配置頁面。
JazzSetup 頁面使用五個步驟引導用戶完成 Jazz Team Server 的用戶配置,包括 Jazz Team Server 使用的存儲數據庫連接信息,Jazz Team Server 的郵件通知功能的配置,以及本小節的重點“Setup User Registry”,如圖 10 所示。這裡,我們在“用戶注冊類型”域中選擇 LDAP 以完成 Jazz Team Server 與 LDAP 的集成。
圖 10. 用戶管理類型
在同一頁面的中間部分,需要用戶填寫 LDAP 的主機和端口信息,並填寫可以訪問 LDAP 的用戶信息,如果匿名用戶,則留空。如圖 11 所示:
圖 11. LDAP 信息
在這個頁面的第三部分,用戶需要將 Base User DN、User Property Names Mapping、Base Group DN 以及 Jazz to LDAP Group Mapping 域信息准確填寫。這裡的設置與“配置 LDAP”小節中的 WAS-LDAP 設置的是一樣的。如圖 12,13 所示:
圖 12. Jazz -LDAP 用戶映射
圖 13. Jazz-LDAP 組映射
需要說明的是,在 Jazz to LDAP Group Mapping 一欄中,如果要設置多個 LDAP 中的組與某個 jazz 角色相關聯,中間要用分號隔開,如:
JazzAdmins=AdmGroup1;AdmGroup2,JazzUsers=UsersGrp,JazzDWAdmins=DWGrp,JazzGuests= otherGroup1; otherGroup2;JazzGuestsGroup。當然,這些組必須存在於 LDAP 中。
最後設置 Group Name Property 和 Group Member Property 的值,如圖 14 所示。在每個屬性名稱的下面都有灰色的說明性文字,對這個屬性的作用進行詳細解釋,具體的數值設置用戶可以根據自己的需要進行設定。
圖 14. 用戶組屬性
使用頁面右下角的“測試連接”按鈕對上述 LDAP 集成配置信息進行測試,測試成功即表明 Jazz Team Server 與 LDAP 的集成已經成功建立,LDAP 用戶可以按照“配置 LDAP”小節中指定的用戶名映射方式,使用 LDAP 用戶名或者 email 地址登錄 Jazz Team Server。
導入 Jazz Team Server 用戶
通過前四個小節的操作,用戶已經完成了 Jazz Team Server 和 LDAP 的集成,LDAP 用戶可以使用 LDAP 賬戶登錄 Jazz Team Server,這表明該用戶已經通過了 Jazz Team Server 的身份安全驗證過程,可以訪問 Jazz Team Server。但讀者會發現,這個 LDAP 用戶雖然可以登錄,但是卻不能執行任何操作,這就說明該用戶目前只是獲得了 Jazz Team Server 的安全認證,還沒有任何操作權限。這就需要執行最後一步配置操作,將 LDAP 用戶導入 Jazz Team Server 後台存儲數據庫中,並為每個用戶賦予所需的 Jazz Team Server 執行權限。具體操作步驟如下:
使用 Jazz Team Server 管理員賬戶登錄 Jazz Team Server 管理員頁面,https://9.123.108.251:9443/jazz/admin,並選擇用戶管理 Tab 頁,如圖 15 所示:
圖 15. 用戶管理-導入用戶
選擇用戶管理頁面中的“Active Users”,點擊“Import Users”。該按鈕講啟動一個查詢對話框,根據用戶提供的查詢條件搜索當前 Jazz Team Server 所使用的用戶管理數據庫,並列出符合查詢條件的賬戶記錄供選擇。如圖 16 所示,Jazz Team Server 管理員在查詢對話框中輸入查詢條件並搜索,在查詢結果中選擇需要填加到 Jazz Team Server 中的用戶信息,點擊“select”將用戶填加到已選擇用戶中。用戶可以按此方式使用不同查詢條件填加其他用戶,全部選擇完畢後點擊 OK 確認。此時 Active Users 中就可以查看到剛才由 LDAP 中導入的用戶信息。
圖 16. 導入用戶
將 LDAP 用戶導入 Jazz Team Server 數據庫之後,還需要給不同用戶分配不同的 Jazz Team Server 訪問權限。如圖 17 所示,在用戶管理頁面中選擇“客戶訪問授權管理”進入用戶授權管理頁面。該頁面上,每種 Jazz Team Server 產品授權都有相應的 Tab 頁面管理,圖 17 示例就是以 RTC contributor 授權管理為例。管理員點擊“分配 Contributor 授權”按鈕,在彈出的搜索對話框中輸入用戶查找條件,選中待授權用戶並確認,就可以在頁面下方授權用戶列表中看到新填加的授權用戶。
圖 17. 用戶管理-授權管理
客戶訪問授權管理頁面為 Jazz Team Server 管理員提供了一個統一的授權管理界面。對於單個用戶,也可以在用戶的屬性頁面中對用戶授權進行查看與設置。
編輯用戶屬性時需要要注意的是,“Repository Permissions”是不能在屬性頁面設置的。該屬性需要在應用服務器(例如,WAS,Tomcat)和 Jazz Team Server setup 頁面進行設置。用戶屬性頁面中的“Client Access Licenses”就是當前這個用戶所具有的對 Jazz Team Server 產品的訪問權限,可以通過復選框進行修改,如圖 18 所示:
圖 18. 用戶屬性
結束語
通過第三節的敘述,相信讀者已經可以一步步的建立 Jazz Team Server 與 LDAP 的集成,使用 LDAP 為 Jazz Team Server 提供用戶身份安全驗證。由於 LDAP 是目前企業級應用最為廣泛的用戶管理系統,希望本文能夠為廣大 Jazz Team Server 產品用戶和即將引入基於 Jazz Team Server 產品的用戶提供清晰的思路,理解 Jazz Team Server 的用戶身份驗證和權限管理機制,快速高效的將 Jazz Team Server 產品與用戶已有 IT 系統實現無縫銜接,享受 Jazz Team Server 的全新體驗!