陳苗苗++張哲
DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.009
摘 要: 通過對傳統(tǒng)的CAS算法進(jìn)行改進(jìn),使之從傳統(tǒng)的單點(diǎn)登陸功能拓展到業(yè)務(wù)系統(tǒng)服務(wù)模塊集成,從而使得高校師生能一步直達(dá)業(yè)務(wù)系統(tǒng)提供的任何服務(wù);改進(jìn)算法極大地降低了業(yè)務(wù)系統(tǒng)與門戶集成的建設(shè)成本,提高了搭建高校網(wǎng)上服務(wù)大廳的效率,而且配置簡單、技術(shù)要求低,因此這是實(shí)現(xiàn)高校業(yè)務(wù)系統(tǒng)服務(wù)集成的一種靈活、簡便的方法。
關(guān)鍵詞: CAS; 服務(wù)集成; 網(wǎng)上服務(wù)大廳
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2016)09-33-04
Application and practice of improved CAS algorithm in the construction
of university online service hall
Chen Miaomiao, Zhang Zhe
(Hangzhou Polytechnic College, Hangzhou, Zhejiang 311400, China)
Abstract: In this paper, the traditional CAS(Central Authentication Service)algorithm is improved, so that it can expand from the traditional SSO to service integration of business system, and make the teachers and students in universities can directly access to any service provided by business system. The improved algorithm reduces the construction cost of business system greatly, improves the efficiency of building online service hall, and the configuration is simple, technical requirements is low. Therefore, this is a flexible and convenient way to realize the service integration of the business system in university.
Key words: Central Authentication Service; service integration; online service hall
0 引言
隨著互聯(lián)網(wǎng)、信息化的發(fā)展,各大高校已經(jīng)意識到以服務(wù)為中心,為師生提供教學(xué)、科研、辦公的一站式數(shù)字校園服務(wù)平臺理念的重要性。目前高校師生對業(yè)務(wù)系統(tǒng)的需求以查詢居多,在使用過程中對各個(gè)業(yè)務(wù)系統(tǒng)之間的交互不多,所以讓師生直達(dá)服務(wù)模塊可以使得師生在最短時(shí)間內(nèi)訪問所需服務(wù)。目前數(shù)字化校園的服務(wù)集成,大多僅限于業(yè)務(wù)系統(tǒng)首頁的單點(diǎn)登錄,還沒有做到真正意義上的服務(wù)集成。
1 當(dāng)前高校服務(wù)集成面臨的問題
高校信息化建設(shè)中,服務(wù)集成的真正意義在于能夠方便部署、管理和擴(kuò)展集成信息和業(yè)務(wù)系統(tǒng)[1],分布的業(yè)務(wù)系統(tǒng)希望通過統(tǒng)一的入口提供各種服務(wù)。當(dāng)前主流的服務(wù)集成的策略主要有Web Services集成、Iframe+Portlet集成、單點(diǎn)登錄集成。
1.1 Web Services集成
基于Web Services的服務(wù)集成,各業(yè)務(wù)系統(tǒng)通過Web Services的方式封裝自己的相關(guān)服務(wù),供其他業(yè)務(wù)系統(tǒng)和門戶調(diào)用,門戶通過調(diào)用各業(yè)務(wù)系統(tǒng)對外發(fā)布的相關(guān)服務(wù),對其進(jìn)行集成、整合,并適度的二次開發(fā)以達(dá)到服務(wù)集成的目的[2]。
但是Web Services集成最大的缺點(diǎn)在執(zhí)行效率上,Web服務(wù)的每個(gè)請求、發(fā)送、響應(yīng)、返回的每個(gè)過程中,都需要對xml進(jìn)行序列和反序列化,從而導(dǎo)致效率方面存在一定的問題[3]。
1.2 Iframe+Portlet集成
Iframe+Portlet集成通過納入Web應(yīng)用,然后利用form的post或者get方式實(shí)現(xiàn)用戶的登錄,但是Iframe+Portlet集成會導(dǎo)致門戶與業(yè)務(wù)系統(tǒng)無法提供一致的外觀[4-5];性能方面,當(dāng)門戶包含多個(gè)portlet時(shí),用戶在提供某個(gè)portlet時(shí),其他的portlet的內(nèi)容也會重新渲染,導(dǎo)致每個(gè)portlet重新加載而影響性能[6]。
1.3 單點(diǎn)登錄集成
單點(diǎn)登錄作為實(shí)現(xiàn)服務(wù)集成的一種技術(shù)方案,它整合了校園網(wǎng)絡(luò)中的信息和各種業(yè)務(wù)系統(tǒng),為全校師生提供了單一的訪問入口。實(shí)現(xiàn)一次登錄即可訪問所有有權(quán)訪問的業(yè)務(wù)系統(tǒng),避免師生的頻繁登錄,在一定程度上提升高校師生的效率,為數(shù)字校園的業(yè)務(wù)系統(tǒng)提供集中的管理和安全的認(rèn)證機(jī)制,一定程度上實(shí)現(xiàn)了業(yè)務(wù)系統(tǒng)的無縫鏈接和集成。
無論是Web Services集成還是Iframe+Portlet集成,均需要業(yè)務(wù)系統(tǒng)封裝、門戶調(diào)用來實(shí)現(xiàn)系統(tǒng)的整合,這兩種主流的集成方式無論對業(yè)務(wù)系統(tǒng)還是門戶都同樣有著工作量大和技術(shù)門檻高的要求[7],這將導(dǎo)致高校在推行此集成方案時(shí)存在較大困難。而通過單點(diǎn)登錄實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)集成僅限于將各業(yè)務(wù)系統(tǒng)的訪問入口集成至門戶首頁,師生尚需要了解業(yè)務(wù)系統(tǒng)模塊結(jié)構(gòu)及其劃分,才能在業(yè)務(wù)系統(tǒng)中找到所需的服務(wù)資源。所以如何做到快速、深入地實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)集成,讓師生快速獲取到相應(yīng)的服務(wù)才是“以提供服務(wù)為理念”的數(shù)字校園應(yīng)該解決的問題。
2 CAS改進(jìn)算法
2.1 CAS認(rèn)證流程
CAS(Central Authentication Service-中心認(rèn)證服務(wù))技術(shù)是由耶魯大學(xué)在2004年12月開發(fā)的為web應(yīng)用提供服務(wù)的單點(diǎn)登錄服務(wù),是現(xiàn)在數(shù)字校園服務(wù)集成中較為流行和較為成熟的技術(shù)[8]。CAS的目的就是使分布在內(nèi)部各個(gè)不同異構(gòu)系統(tǒng)的認(rèn)證工作集中在一起,通過一個(gè)公用的認(rèn)證系統(tǒng)統(tǒng)一驗(yàn)證用戶身份的合法性。通過CAS認(rèn)證的用戶將獲得CAS頒發(fā)的一個(gè)證書,使用這個(gè)證書,用戶可以在承認(rèn)CAS證書的各個(gè)系統(tǒng)上自由穿梭訪問,不需要再次的登錄認(rèn)證[9]。
基于CAS協(xié)議的單點(diǎn)登錄系統(tǒng)體系上主要分為CAS認(rèn)證服務(wù)器、CAS客戶端和瀏覽器[10]。CAS認(rèn)證服務(wù)器是整個(gè)統(tǒng)一身份認(rèn)證的核心部分,需要獨(dú)立部署。CAS客戶端通常是Web業(yè)務(wù)系統(tǒng),瀏覽器是師生訪問CAS客戶端的主要工具,它必須支持HTTP重定向、擁有加密引擎支持HTTPS、能解析基本的JavaScript、能安全存儲Cookie信息。CAS的認(rèn)證流程如圖1。
傳統(tǒng)的CAS客戶端通過取出ticket,生成“ticket驗(yàn)證URL”,然后發(fā)起http GET請求重定向。在CAS認(rèn)證流程中,CAS客戶端主要實(shí)現(xiàn)以下邏輯[11]。
⑴ 以filter的形式,對B/S結(jié)構(gòu)應(yīng)用系統(tǒng)資源進(jìn)行過濾保護(hù),可以保護(hù)所有資源,也可以保護(hù)單一資源。
⑵ 獲得CAS Server頒發(fā)的ServiceTicket,并憑此ST從CAS Server上取得登錄用戶信息。
⑶ 為第三方應(yīng)用提供開發(fā)接口,使得受保護(hù)的應(yīng)用能夠根據(jù)CAS認(rèn)證信息進(jìn)行正確的登錄。
通過以上的CAS認(rèn)證流程,傳統(tǒng)高校實(shí)現(xiàn)了在獲取CAS頒布的惟一認(rèn)證證書之后即可實(shí)現(xiàn)在各業(yè)務(wù)系統(tǒng)之間的單點(diǎn)登錄,從而實(shí)現(xiàn)通過數(shù)字校園門戶單一訪問入口訪問各業(yè)務(wù)系統(tǒng)的服務(wù)資源,完成初步的網(wǎng)上服務(wù)大廳的創(chuàng)建工作,這是目前傳統(tǒng)高校在建設(shè)網(wǎng)上服務(wù)大廳的常用方案。
2.2 CAS客戶端算法改進(jìn)
通過對CAS客戶端算法的深入研究,對CAS客戶端代碼進(jìn)行相應(yīng)的改進(jìn),可以實(shí)現(xiàn)門戶與業(yè)務(wù)系統(tǒng)服務(wù)資源的深入集成,最終實(shí)現(xiàn)了業(yè)務(wù)系統(tǒng)任何深度模塊的直接訪問,方便了師生對常用業(yè)務(wù)系統(tǒng)服務(wù)的快速訪問,同時(shí)降低業(yè)務(wù)系統(tǒng)的建設(shè)成本,達(dá)到一站式服務(wù)的最終目標(biāo)。
CAS客戶端改進(jìn)算法主要是在CAS客戶端發(fā)出重定向請求之前,對重定向地址進(jìn)行請求URL解析、關(guān)鍵字定位、最終URL提取。以下是對重定向地址處理的核心代碼段:
[String strRedirecturl = request.getParameter("RedirectUrl");
//定位關(guān)鍵字,提取最終url
if(strRedirecturl != null && strRedirecturl.length()>0) {
response.sendRedirect(strRedirecturl); //重定向到最終url
}
else {
response.sendRedirect("業(yè)務(wù)系統(tǒng)首頁"); //重定向到首頁
}\&]
業(yè)務(wù)系統(tǒng)通過CAS集成時(shí),在登錄入口處對上述算法改進(jìn),即在登錄成功后,從request中找到關(guān)鍵字RedirectUrl,并獲取到最終的strRedirecturl,如果為空,則跳轉(zhuǎn)到業(yè)務(wù)系統(tǒng)的首頁;如果不為空,則跳轉(zhuǎn)到獲取的strRedirecturl。strRedirecturl即為業(yè)務(wù)系統(tǒng)的任何深度服務(wù)模塊地址。
以某高校圖書管理系統(tǒng)的“借閱記錄”頁面為例,用戶通過瀏覽器請求url(http://ts.hzpt.edu.cn/neusoftcas.aspx?RedirectUrl=http://ts.hzpt.edu.cn/main/BorrowHistory.aspx)。CAS客戶端通過對請求的url進(jìn)行解析:首先找到到關(guān)鍵字RedirectUrl,然后獲取到用戶最終需要訪問的地址(http://ts.hzpt.edu.cn/main/BorrowHistory.aspx),最后將該訪問地址重定向給CAS服務(wù)器。
本文中基于CAS客戶端改進(jìn)的業(yè)務(wù)服務(wù)集成方法,不需要業(yè)務(wù)系統(tǒng)重構(gòu)代碼,只需要在單點(diǎn)登錄處增加代碼段,建設(shè)成本非常低;高校信息化管理人員亦可方便地根據(jù)教職工、學(xué)生的需求隨時(shí)配置服務(wù),而且對信息管理人員的技術(shù)要求也不高。但是由于該算法對請求的url地址需要事先配置,所以只允許對靜態(tài)地址進(jìn)行解析,對動態(tài)生成的地址無法實(shí)現(xiàn)進(jìn)行相關(guān)配置。
3 成果展示
下文將以某高校數(shù)字門戶為例,展示該方法在數(shù)字校園門戶中的具體應(yīng)用場景,同時(shí)介紹在數(shù)字校園后臺中如何配置業(yè)務(wù)系統(tǒng)提供的服務(wù)地址。
3.1 實(shí)踐結(jié)果展示
目前大多數(shù)高校通過單點(diǎn)登錄提供的服務(wù),僅僅做到了首頁的單點(diǎn)登錄,為了讓高校師生能夠快速直達(dá)訪問到業(yè)務(wù)系統(tǒng)提供的服務(wù),數(shù)字校園門戶首頁提供了服務(wù)墻(“我的信息”),此服務(wù)墻使用的技術(shù)細(xì)節(jié)即為前文中提出的CAS客戶端改進(jìn)算法。如圖2,每個(gè)模塊實(shí)際訪問的都是業(yè)務(wù)系統(tǒng)的資源,例如師生訪問“借閱歷史”,圖書管理系統(tǒng)開始解析訪問的地址,通過獲取關(guān)鍵字RedirectUrl找到實(shí)際訪問的地址,再將地址重定向到CAS服務(wù)器,經(jīng)過CAS服務(wù)器對賬號密碼的認(rèn)證通過之后,圖書管理系統(tǒng)將請求的資源展示給請師生。
3.2 后臺設(shè)置
如圖3中每個(gè)服務(wù)模塊的地址由數(shù)字校園管理員配置。服務(wù)范圍可以選擇該服務(wù)提供給誰使用。應(yīng)用鏈接地址組成:”業(yè)務(wù)系統(tǒng)單點(diǎn)登錄地址”+”?RedirectUrl=”+”業(yè)務(wù)系統(tǒng)服務(wù)模塊地址”。例如,圖書管理系統(tǒng)提供的“借閱歷史”服務(wù),首先輸入圖書管理系統(tǒng)單點(diǎn)登錄地址(http://ts.hzpt.edu.cn/neusoftcas.aspx),再輸入拼接字符和關(guān)鍵字(?RedirectUrl=),最后輸入圖書管理系統(tǒng)借閱歷史的地址(http://ts.hzpt.edu.cn/main/BorrowHistory.aspx),所以應(yīng)用鏈接地址就是(http://ts.hzpt.edu.cn /neusoftcas.aspx?RedirectUrl=http://ts.hzpt.edu.cn/main/BorrowHistory.aspx)。
4 結(jié)束語
傳統(tǒng)的Web Services和iframe+protlet等比較深入的集成方式,雖然可實(shí)現(xiàn)很好的集成效果,但在這些模式中,業(yè)務(wù)系統(tǒng)與門戶之間,業(yè)務(wù)系統(tǒng)與業(yè)務(wù)系統(tǒng)之間,均必須利用系統(tǒng)中的接口和函數(shù)進(jìn)行二次開發(fā)和封裝,其開發(fā)成本太高。而本文中基于CAS改進(jìn)算法的業(yè)務(wù)服務(wù)集成方式能夠做到低成本、服務(wù)快速集成、入口統(tǒng)一、配置簡單,能快速滿足高校的服務(wù)整合需求,實(shí)現(xiàn)一個(gè)網(wǎng)上服務(wù)大廳,真正做到為全校師生提供“一站式”服務(wù)。
未來提供基于移動互聯(lián)網(wǎng)的服務(wù)集成顯得越來越重要,而傳統(tǒng)互聯(lián)網(wǎng)在資源和服務(wù)上擁有更加穩(wěn)定成熟的應(yīng)用基礎(chǔ)。因此,在網(wǎng)絡(luò)環(huán)境優(yōu)越的高校,如何依托傳統(tǒng)互聯(lián)網(wǎng)的服務(wù)優(yōu)勢,同時(shí)利用移動互聯(lián)網(wǎng)的便捷性,快速、輕量地實(shí)現(xiàn)基于移動端的數(shù)字校園服務(wù)中心,將是以后的研究方向。
參考文獻(xiàn)(References):
[1] http://www.soft78.com/article/2012-12/2-ff8080813b2e
07db013b87a14f472bad.html,2016.
[2] 張前峰.基于WebServices的數(shù)字化校園的研究與設(shè)計(jì)[D].
華僑大學(xué),2005:24-25
[3] 陳明.關(guān)于web+service的數(shù)字化校園應(yīng)用系統(tǒng)的集成[D].電
子科技大學(xué),2006:55-56
[4] 邱春芳.基于門戶和企業(yè)服務(wù)總線的應(yīng)用集成研究及應(yīng)用[D].
華東理工大學(xué),2013:34-35
[5] 周向軍.Portlet技術(shù)在數(shù)字校園中的研究與應(yīng)用[D].北方工
業(yè)大學(xué),2013:52-54
[6] 李立焰,譚慶平,繳名揚(yáng),李玉.JSR 168 Portlet應(yīng)用中保持
mvc模式帶緩存服務(wù)調(diào)用方案的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2006.4:25-28
[7] 羅輝瓊,聶瑞華.基于Portal的門戶開發(fā)技術(shù)研究[J].計(jì)算機(jī)
技術(shù)與發(fā)展,2012.8:35-38
[8] 季昉.基于CAS的Web單點(diǎn)登錄系統(tǒng)的應(yīng)用研究[D].大連海
事大學(xué),2010:45-47
[9] 李勇.基于CAS構(gòu)建SSO系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].曲靖師范學(xué)
院學(xué)報(bào),2012.3:42-47
[10] 盧清平,楊柳,許曉東.一個(gè)基于Yale-CAS的單點(diǎn)登錄解決
方案[J].合肥學(xué)院報(bào),2005.3:10-14
[11] 黃永生.基于CAS協(xié)議的單點(diǎn)登錄關(guān)鍵技術(shù)的研究與應(yīng)用[D].
中南大學(xué),2010:34-42