史云鵬,趙 旻
(1.青島電視大學膠州分校,山東 膠州 266300;2.青島市第五十一中學,山東 青島 266071)
單點登錄認證框架在校園共享系統中的應用
史云鵬1,趙 旻2
(1.青島電視大學膠州分校,山東 膠州 266300;2.青島市第五十一中學,山東 青島 266071)
針對目前數字化校園建設中各種跨業務范疇應用系統各自獨立運行、獨立認證的問題,本文分析研究單點登錄認證框架在校園共享系統開發中的可行性與實現流程。使用集成SSO機制的J2EE開發框架整合改造已運行使用的各業務系統,與新開發的Web應用系統耦合,實現鏈接。實現安全有效的用戶管理和不同域上應用系統的統一認證。
數字化校園;單點登錄;Web服務;系統集成
數字化校園建設以信息資源與信息服務為核心內容,以實現數字化的學習、教學、科研和管理為目標。隨著校園信息化建設的不斷深入,各種基于校園網絡的應用系統在行政辦公、教學科研、后勤服務工作中廣泛應用。由此,教育資源信息系統的研發成為數字化校園建設的核心內容,其研究的重點是以信息整合及服務集成為目標,實現教學資源的充分共享,各業務部門能夠優化數據,便捷管理和使用,并且系統能夠提供良好的安全性以及個性化服務。然而,目前學校各種跨部門、跨業務應用系統各自獨立運行、獨立認證的弊端也逐漸突顯出來:各應用系統缺乏耦合,教學信息資源沒有合理整合優化,校園網絡難以集中管理;系統用戶權限不清,缺乏統一的角色訪問控制,安全性存在較大隱患。
以我校數字化校園建設項目為例,其建設目標是建設一個具有現代化水平的信息化校園,經過幾年的努力各業務部門根據需要建立部署了圖書管理系統、教務管理系統、學籍管理系統、后勤管理系統、職業資格考核報名系統、校園一卡通系統等,而這些獨立于各業務部門的應用系統各自的身份管理缺失耦合。研究表明,基于單點登錄認證機制的Web Services架構在數字化校園資源共享系統中的開發應用,能夠對原有系統進行數據整合和應用整合,通過對各系統站點數據的優化整合共享資源,使全校業務運行更加規范,節約成本,提高效率;通過提供單一的訪問入口,進行統一身份認證,安全控制、易于管理。
1.可行性分析
傳統的應用系統認證機制普遍是基于用戶名/密碼的,采用分散的用戶管理,這種身份標識是分別被每個系統保存的,無法相互傳遞。這就需要用戶在進入不同系統時都要分別提交身份標識,來通過系統的認證,才能調用不同站點提供的服務。
廣泛應用于學校各部門、各業務領域的信息系統正是由于這種各自運行、獨立認證的弊端使得數字化校園建設缺失統一的角色訪問控制,教育資源得不到合理優化高效利用。基于效率和安全的因素,我們在數字化校園資源共享系統的開發架構中使用了一種認證信息共享模式的單點登錄SSO(Single Sign On)機制。基于單點登錄機制的J2EE設計架構把原來分散的用戶管理集中起來,各系統之間依靠相互信賴的關系來進行用戶身份的自動認證。單點登錄SSO使得只需進行一次身份認證就可達到對多個應用系統進行訪問,提高了用戶工作效率。單點登錄從根本上拋棄了傳統認證中用戶名/密碼以明文傳輸的方式,采用了結合密碼學技術的新認證機制,從而提高了整個系統的安全性。另外,采用SAML(安全斷言標記語言)和SRP(安全遠程密碼協議)實現SSO,同時提高了跨越數字化校園邊界的安全信息互操作性,使各不相同的安全系統身份認證達到一體化,優化了網絡系統的安全管理控制。
2.SSO單點登錄模型及實現流程
單點登錄是應用于Web Services服務器的一種認證信息共享機制。[1]應用系統需要從用戶那里收集所有必要的證明和用戶憑證信息,用以支持可能會與之發生作用的其他應用系統對用戶的認證。
使用單點登錄集成架構之前,每個系統都會有各自的安全體系和身份認證系統。用戶訪問系統都需要輸入相應系統正確的用戶名和口令,鑒權通過后方可訪問。
單點登錄后,用戶在經過一次網絡身份驗證后,就可以訪問所有授權的網絡資源,而不需要額外驗證。例如,如圖1所示,資源共享系統有Ⅰ、Ⅱ、Ⅲ三個應用服務子系統,實現單點登錄的流程是:
當用戶訪問Ⅰ應用服務時,會被引導到認證系統或用戶管理系統中進行登錄①,根據用戶提供的登錄信息,認證系統進行身份校驗,若通過校驗,返回給用戶一個認證的票據(ticket)②;
票據是系統給登錄的合法用戶發放的一張許可證。各服務系統僅根據用戶票據提供服務訪問,因此用戶可以通過該合法票據實現對所有應用系統的統一訪問。票據在整個支撐體系中是唯一的,并對用戶進行了身份綁定,用戶無法通過偽造或交換票據來非法侵入系統。票據上印有時間戳和用戶屬性,系統可以通過屬性實現對用戶訪問的個性化控制;
用戶再訪問Ⅱ、Ⅲ應用服務的時候就會將這個票據附帶上③⑤,作為認證憑據,應用系統接收到請求之后把票據送到認證系統進行校驗,檢查票據的合法性④⑥。若通過校驗,可以不需再次登錄而直接訪問Ⅱ、Ⅲ應用服務。

1.共享系統SSO認證整體架構設計思路
為了滿足系統能夠提供安全有效的用戶管理,實現不同域上的應用系統統一認證,使用集成SSO機制的J2EE開發框架整合改造已經運行使用的各業務系統,增加對SSO支持,與新開發的各Web應用系統優化耦合,集成于共享系統中,實現無縫鏈接。
已部署的應用系統擁有各自的用戶庫(用戶數量、密碼、賬號),在共享系統中要做到用戶信息的統一。我們可以將單點登錄系統中的用戶數據與其他各Web應用系統中的用戶數據建立映射,實現一個帳號管理多個系統的目的。另外,共享系統之內的各業務系統可能不在同一個域下,由于用來傳遞會話ID的Cookie不允許跨域訪問,因此我們采用基于XML-RPC的臨時會話而非共享會話的方式來實現單點登錄,通過在客戶端瀏覽器、單點登錄系統和Web應用系統之間傳遞臨時會話,Web應用系統直接到單點登錄系統中獲取認證信息來實現單點登錄。用XML-RPC在Web應用系統和單點登錄系統之間進行通訊,能夠實現各應用系統跨域訪問,以及屏蔽不同開發工具開發的應用程序之間難以訪問的問題。而這種開發整合,恰好符合J2EE開發平臺具有良好兼容性的特點,使認證系統能夠屏蔽這種平臺差異,實現SSO在不同應用域的跨越。
另一方面,設計集成系統的可擴展性和松散耦合特性也是基于以下兩方面的考慮:若有新的應用系統在校園共享系統部署時,能夠將新的應用系統方便地集成到單點登錄系統里進行統一的認證和授權;當單點登錄系統的內部結構發生變化,也可以保證這種變動對于用戶和其他應用系統來說是透明的。
2.數字化校園共享系統整體架構設計與開發
(1)系統整體架構及各Web服務的實現
共享系統架構包括單點登錄認證平臺SSO,LDAP數據庫,Web Services集成服務。[2][4]數字化校園共享系統整體架構如圖2所示。

1)SSO單點登錄系統:包括CAS服務器,為應用系統提供認證和授權服務。
2)用戶和系統信息數據庫:采用標準的LDAP目錄服務數據庫,以層次結構、面向對象方式對校內用戶和應用系統的信息進行管理,保證數據的一致性和完整性,為校園網的各類應用系統提供用戶信息共享使用。
3)Web Services集成服務 (通過 Web Services技術將各功能模塊封裝成Web Service部件后發布到UDDI注冊中心,以方便其他應用通過接口調用),包括:SOAP處理器、事務處理器和適配器三個模塊。SOAP處理器實現SOAP消息的傳遞;事務處理器負責對用戶各種事務請求的處理和響應;適配器為每個應用提供不同的接口以供調用;建立與后端服務器的通信連接和安全機制;實現XML-RPC數據格式在各應用子系統數之間的轉換;實現在SOAP處理器與適配器之間的消息傳遞。
中心站點各Web服務的實現:首先,資源站點將提供的資源服務接口用WSDL描述后,將本站點Web服務注冊到UDDI注冊中心。注冊中心審核并發布審核通過的資源站點Web服務。其次,由目錄中心調用UDDI注冊中心發布的Web服務,以獲取各資源站點的Web服務注冊信息并通過程序將各站點中的資源信息同步更新至目錄中心數據庫中,然后數據綁定至公共服務平臺供用戶查詢、下載和管理資源。
(2)系統Web Service的集成要點
XFire作為Web Service框架開發工具,通過提供簡單的API支持Web Service各項標準協議,可方便快速地開發Web Service應用。[2][4]開發部署:新建Web工程,應用Myeclipse添加Xfire核心類庫。為后續客戶端的測試,加入commons-httpclient.jar包到工程WEB-INF/lib目錄下。在src下建立test和Webservice目錄,分別用于存放測試文件和Webservice的相關類。
Web Serviced的實現:首先,Web.xml的配置。首先在Web.xml中配置XFire的 servlet和servlet-mapping兩個文件。然后加載Spring的相應配置文件,以達到將XFire集成到Spring中的目的。Spring的兩個配置文件一個為applicationContext.xml,該文件用來定義本工程的bean,一個為xfire-servlet.xml,用來配置XFire的相關bean。需提前在WEB-INF目錄下建立。其次,編寫Web服務程序。對每一個具體的Web服務在src/Webservice目錄下編寫此服務接口類和對應的實現類。
(3)系統中心單點登錄功能的實現
校園共享系統采用acegi整合CAS來實現認證與授權,CAS負責完成認證部分,acegi負責應用程序的授權。[3][5]安裝CAS,拷貝 CAS target目錄中的 cas.war到Tomcat Webapps目錄下;配置Tomcat,使Tomcat支持SSL,增加CAS使用https和客戶端進行通信的安全性;安裝配置 CAS Server和 acegi,添加 acegi-security-1.0.1.jar和acegi-security-cas-1.0.l.jar到工程目錄。打開WEB-INF中spring的配置文件deployerConfigContext.xml,配置用戶認證,增加應用授權bean。
單點登錄系統設置四個表:單點登錄系統用戶表(user_id,name,password);Web 應 用 系 統 表 (app_id,name,checkurl),name 是 Web 應 用系統 名稱,checkurl是Web應用系統中用來驗證用戶登錄的程序地址;單點登錄系統用戶到各個 Web應用系統的用戶映射表(id,user_id,app_id,name,password); 臨時會話表, 包含hash(臨時會話的 hash編號)、id(對應單點登錄系統用戶到各個 Web應用系統的用戶映射表中的 id字段)2個字段。
用戶登錄單點登錄系統時,通過單點登錄系統用戶表中的字段來驗證用戶身份。CAS認證通過后,確立各個Web應用系統到該系統用戶的映射關系。用戶通過單點登錄系統進入其他某個 Web應用系統時,該系統會為用戶和Web應用系統生成一個臨時會話編號(hash),并轉到 Web應用系統中的登錄檢測頁面,登錄檢測頁面通過獲取到的臨時會話編號,來調用單點登錄系統的XML_RPC API,獲取用戶名和密碼實現Web應用系統的登錄。
通過統一認證系統實現用戶在應用系統處的自動登錄,這種設計能夠實現校內現存的多種業務應用系統統一身份認證,包括單點登錄和授權管理的問題。降低各系統開發和管理難度,提高使用安全性,能夠實現數字化校園共享系統資源共享、數據優化、便捷管理的建設目標。方案對已有的 Web應用系統和將來待開發的 Web應用系統進行集成部署和實施,有利于企事業單位內部應用系統的升級改造。
[1]Pashalidis A,Mitchell C.J.Single sign-on using trusted plat-forms[C].Information Security.Berlin:Springer,2003:54-68.
[2]鄭東曦.基于Web服務的統一身份認證服務的設計實現[J].計算機工程與設計,2006(6).
[3]張濤,王秉坤.使用 CAS在 Tomcat中實現單點登錄[DB/OL].http://www.ibm.com/developerworks/cn/opensource/os-cn-cas,2008-4-10.
[4]劉潤峰.多域單點登錄系統的設計與實現[D].北京郵電大學,2007.
[5]JoeWigglesworth,PaulaMcMillan,JavaProgramming:Advanced Topics[M].北京:清華大學出版社,2005.7.
(編輯:金冉)
TP315
B
1673-8454(2011)15-0081-03