——以福建商業(yè)高等專(zhuān)科學(xué)校為例"/>
陳 杰,游貴榮,謝日敏
(福建商業(yè)高等專(zhuān)科學(xué)校信息網(wǎng)絡(luò)中心,福建 福州 350012)
?
基于CAS的統(tǒng)一身份認(rèn)證門(mén)戶設(shè)計(jì)與實(shí)現(xiàn)
——以福建商業(yè)高等專(zhuān)科學(xué)校為例
陳杰,游貴榮,謝日敏
(福建商業(yè)高等專(zhuān)科學(xué)校信息網(wǎng)絡(luò)中心,福建 福州 350012)
[摘 要]分析了CAS協(xié)議的工作原理,并從福建商業(yè)高等專(zhuān)科學(xué)校信息化建設(shè)中各應(yīng)用系統(tǒng)的現(xiàn)狀出發(fā),采用CAS協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了統(tǒng)一身份認(rèn)證門(mén)戶,規(guī)范校內(nèi)信息系統(tǒng)單點(diǎn)登陸標(biāo)準(zhǔn)。同時(shí)支持不同系統(tǒng)、不同賬號(hào)映射跳轉(zhuǎn)的私有協(xié)議,兼容早期開(kāi)發(fā)的舊系統(tǒng),降低了實(shí)施統(tǒng)一認(rèn)證平臺(tái)的條件和成本,并在統(tǒng)一身份認(rèn)證門(mén)戶中引入業(yè)務(wù)開(kāi)通流程管理,有效規(guī)范了學(xué)校的IT服務(wù)管理流程。
[關(guān)鍵詞]單點(diǎn)登錄;CAS技術(shù);高校信息系統(tǒng);IT服務(wù)管理
信息化技術(shù)的發(fā)展使得越來(lái)越多的業(yè)務(wù)系統(tǒng)被各機(jī)構(gòu)組織采用,用以支撐內(nèi)部的業(yè)務(wù)順利有效地開(kāi)展。但是這些引入的系統(tǒng)很可能不是同一個(gè)公司開(kāi)發(fā),因此都有各自的用戶信息數(shù)據(jù)庫(kù)和認(rèn)證方式。用戶必須針對(duì)每個(gè)系統(tǒng)記憶一套用戶名和密碼,給其帶來(lái)很大不便,同時(shí)也對(duì)系統(tǒng)的使用推廣造成巨大的障礙[1]。
為解決此問(wèn)題,業(yè)界引入Single Sign On(SSO),即單點(diǎn)登錄技術(shù),用戶只要通過(guò)一次登錄就能在信任的應(yīng)用系統(tǒng)間互相訪問(wèn)。本文從福建商業(yè)高等專(zhuān)科學(xué)校信息化建設(shè)中各應(yīng)用系統(tǒng)的現(xiàn)狀出發(fā),采用CAS2.0(Central Authentication Service)協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了校內(nèi)統(tǒng)一身份認(rèn)證門(mén)戶:整合已有的教務(wù)、網(wǎng)絡(luò)課程平臺(tái)、財(cái)務(wù)工資、科研等系統(tǒng)于其中,提供統(tǒng)一的校內(nèi)登錄認(rèn)證服務(wù),規(guī)范校內(nèi)信息系統(tǒng)單點(diǎn)登錄標(biāo)準(zhǔn),既便于師生訪問(wèn),又提高了各應(yīng)用系統(tǒng)的使用率。該設(shè)計(jì)方案是一種輕量開(kāi)源解決方案,僅需修改少量的系統(tǒng)代碼就能實(shí)現(xiàn)標(biāo)準(zhǔn)協(xié)議的單點(diǎn)登錄,同時(shí)支持不同系統(tǒng)、不同賬號(hào)映射跳轉(zhuǎn)的私有協(xié)議,及兼容舊系統(tǒng)。無(wú)須一次性更換舊的系統(tǒng)用戶賬號(hào),可降低統(tǒng)一認(rèn)證平臺(tái)的實(shí)施條件和成本,避免更換舊系統(tǒng)用戶賬號(hào)而造成的風(fēng)險(xiǎn),適用于那些還未購(gòu)買(mǎi)商業(yè)化統(tǒng)一認(rèn)證平臺(tái)、規(guī)模不大、且有一定開(kāi)發(fā)能力的學(xué)校和企業(yè)。
1CAS協(xié)議介紹
CAS最早是耶魯大學(xué)發(fā)起的一個(gè)開(kāi)源單點(diǎn)登錄項(xiàng)目[2-3],用戶通過(guò)CAS協(xié)議,只要一次登陸就能在信任的應(yīng)用系統(tǒng)間互相訪問(wèn)。CAS具備不同web程序語(yǔ)言的客戶端,可以方便地植入已有的web系統(tǒng)中,同時(shí)CAS也是一個(gè)開(kāi)放源碼的、有充足文檔和網(wǎng)絡(luò)社區(qū)支持的標(biāo)準(zhǔn)協(xié)議。目前CAS已經(jīng)成為一個(gè)apereo項(xiàng)目。
如圖1所示,CAS協(xié)議的工作原理:CAS系統(tǒng)分為客戶端和服務(wù)器端。服務(wù)器端是個(gè)獨(dú)立部署的web服務(wù)器,主要用于用戶身份認(rèn)證;客戶端以庫(kù)文件形式嵌入到每個(gè)應(yīng)用系統(tǒng)中來(lái)實(shí)現(xiàn)和服務(wù)器的交互認(rèn)證,各應(yīng)用系統(tǒng)經(jīng)過(guò)較小的改動(dòng)就能滿足CAS協(xié)議,并接入單點(diǎn)登錄平臺(tái)。當(dāng)用戶瀏覽器訪問(wèn)CAS客戶端時(shí),會(huì)檢查http協(xié)議或https協(xié)議所攜帶的會(huì)話參數(shù)或是服務(wù)器會(huì)話中是否攜帶ST(Service Ticket),如果都沒(méi)有攜帶,CAS客戶端就重定向用戶請(qǐng)求到CAS服務(wù)端并傳遞回調(diào)地址,當(dāng)用戶在CAS服務(wù)端輸入正確的用戶名和密碼通過(guò)認(rèn)證后,CAS服務(wù)端生成TGT(Ticket Granting Ticket)放入緩存,生成TGC(Ticket Granting Cookie),寫(xiě)入客戶端瀏覽器,TGT簽發(fā)一個(gè)ST,根據(jù)傳入的回調(diào)地址和ST,用戶重新訪問(wèn)CAS客戶端,CAS客戶端根據(jù)ST與CAS 服務(wù)器進(jìn)行身份認(rèn)證。
2統(tǒng)一身份認(rèn)證門(mén)戶的具體實(shí)現(xiàn)方案
2.1現(xiàn)有應(yīng)用系統(tǒng)情況分析
學(xué)校在用系統(tǒng)主要有教務(wù)、網(wǎng)絡(luò)課程平臺(tái)、財(cái)務(wù)工資、科研管理、OA和郵件等。因歷史遺留問(wèn)題,用于登錄以上系統(tǒng)的用戶賬號(hào)(工號(hào))并不統(tǒng)一?,F(xiàn)階段強(qiáng)行要求這些系統(tǒng)更換工號(hào)有很大困難,只能等待新系統(tǒng)上線時(shí)更換成統(tǒng)一工號(hào)。對(duì)于這種情況,可采用關(guān)聯(lián)表映射跳轉(zhuǎn)的方式解決。而部分系統(tǒng)已使用統(tǒng)一工號(hào)的,可使用CAS協(xié)議實(shí)現(xiàn)單點(diǎn)登錄。
從系統(tǒng)的采購(gòu)情況來(lái)看,大部分系統(tǒng)都是從廠家購(gòu)買(mǎi)的非定制系統(tǒng),學(xué)校并沒(méi)有掌握這類(lèi)系統(tǒng)的源代碼,需要廠家協(xié)助修改,以支持單點(diǎn)登錄;也有部分系統(tǒng)如財(cái)務(wù)工資、OA等是學(xué)校自主開(kāi)發(fā)的,自行修改源代碼即可。
2.2配置認(rèn)證數(shù)據(jù)庫(kù)
學(xué)校已經(jīng)部署了輕量級(jí)目錄服務(wù)協(xié)議(Lightweight Directory Access Protocol,LDAP),用于存放校內(nèi)撥號(hào)認(rèn)證上網(wǎng)和VPN登錄的用戶名和密碼,因此CAS服務(wù)端也將LDAP設(shè)置為用戶認(rèn)證數(shù)據(jù)庫(kù)[4],只要簡(jiǎn)單配置CAS的認(rèn)證數(shù)據(jù)源就能實(shí)現(xiàn)支持LDAP。
2.3私有單點(diǎn)登錄跳轉(zhuǎn)協(xié)議
CAS協(xié)議需要LDAP用戶名和系統(tǒng)的用戶名一致才能通過(guò)驗(yàn)證。對(duì)于工號(hào)不統(tǒng)一的舊系統(tǒng),可在過(guò)渡使用階段設(shè)置關(guān)聯(lián)表,并存放于LDAP數(shù)據(jù)庫(kù)中[5],通過(guò)使用私有單點(diǎn)登錄協(xié)議來(lái)實(shí)現(xiàn)映射登錄到應(yīng)用系統(tǒng)。私有單點(diǎn)登錄協(xié)議實(shí)現(xiàn)方式可以在http請(qǐng)求中添加加密信息串,具體加密方法可參考各種第三方平臺(tái)登錄系統(tǒng),如微信、微博的第三方登錄等。而新上線的校內(nèi)應(yīng)用系統(tǒng)都要求使用校內(nèi)統(tǒng)一的工號(hào),并通過(guò)CAS協(xié)議與統(tǒng)一認(rèn)證平臺(tái)對(duì)接。
2.4關(guān)于各CAS客戶端系統(tǒng)主從關(guān)系的分析
標(biāo)準(zhǔn)的CAS架構(gòu)只有客戶端和認(rèn)證服務(wù)器端,各客戶端都處于同一優(yōu)先級(jí),只要有一個(gè)客戶端系統(tǒng)退出CAS認(rèn)證,其他系統(tǒng)也同時(shí)要退出CAS認(rèn)證,這樣使用起來(lái)很不方便,也不是單點(diǎn)登錄系統(tǒng)所要達(dá)到的效果;或者一個(gè)客戶端退出CAS認(rèn)證,但CAS認(rèn)證服務(wù)器還保持登錄,還需要到CAS認(rèn)證服務(wù)器端再退出一次,很多用戶會(huì)忘記登出CAS認(rèn)證服務(wù)器端,從而產(chǎn)生安全問(wèn)題。在實(shí)際使用中,單點(diǎn)登錄的需要一個(gè)導(dǎo)航頁(yè),因此使用主從式客戶端架構(gòu),主客戶端為Portal(即統(tǒng)一身份認(rèn)證門(mén)戶),一方面作為各個(gè)從客戶端系統(tǒng)的入口導(dǎo)航,實(shí)現(xiàn)單點(diǎn)登錄和退出CAS,另一方面實(shí)現(xiàn)不一致工號(hào)系統(tǒng)的映射查詢,并跳轉(zhuǎn)登錄。從客戶端即為各具體業(yè)務(wù)系統(tǒng),其退出時(shí)只退出自己系統(tǒng),不退出CAS認(rèn)證系統(tǒng)。在由主客戶端跳轉(zhuǎn)到從客戶端時(shí),從客戶端需要從CAS認(rèn)證服務(wù)器獲取用戶名,并在本系統(tǒng)中查詢是否有該用戶,驗(yàn)證通過(guò)則登錄系統(tǒng),這樣就能最大程度保留原系統(tǒng)的功能。圖2為學(xué)校的Portal架構(gòu),新系統(tǒng)使用CAS協(xié)議。工號(hào)不同的舊系統(tǒng)使用私有協(xié)議映射跳轉(zhuǎn),需要注意的是,雖然都是從Portal端跳轉(zhuǎn)到CAS從客戶端,但CAS從客戶端還是直接和CAS認(rèn)證服務(wù)器通信認(rèn)證。
2.5CAS主從客戶端單點(diǎn)退出的設(shè)計(jì)
CAS服務(wù)端設(shè)計(jì)了logout接口,用于清理CAS服務(wù)端中的認(rèn)證票據(jù)和用戶瀏覽器中cookie,這樣在CAS服務(wù)端就能實(shí)現(xiàn)退出功能。但需要注意以下兩點(diǎn):在主客戶端退出登錄后,如果用戶之前使用單點(diǎn)登錄過(guò)從客戶端,則在從客戶端還存在與用戶瀏覽器的session,因此用戶需到從客戶端再退出一次;在從客戶端退出登錄時(shí),web程序除了要清除系統(tǒng)本身的session變量,還要清除所嵌入的CAS客戶端軟件保存的session變量,否則用戶再輸入單點(diǎn)入口網(wǎng)址又會(huì)登錄。
3系統(tǒng)實(shí)施流程
3.1部署CAS認(rèn)證服務(wù)器
在認(rèn)證服務(wù)器上安裝tomcat,部署cas-server程序。修改以下配置:
(1)配置認(rèn)證數(shù)據(jù)源,使用LDAP作為認(rèn)證數(shù)據(jù)庫(kù)。
(2)使用http協(xié)議。https協(xié)議雖然能提高安全性,但需要申請(qǐng)ssl證書(shū),每年需要繳納年費(fèi),若使用自己生成的證書(shū)瀏覽器會(huì)有安全警告,提示證書(shū)不可信任,而校內(nèi)單點(diǎn)登錄系統(tǒng)主要針對(duì)學(xué)生和老師的內(nèi)部系統(tǒng),http協(xié)議即可滿足要求。
(3)個(gè)性化CAS認(rèn)證服務(wù)器登錄頁(yè),添加驗(yàn)證碼功能,防止暴力登錄破解用戶賬號(hào)。
3.2建立CAS客戶端
CAS主客戶端(即Portal)要實(shí)現(xiàn)單點(diǎn)登錄、退出CAS及工號(hào)不一致系統(tǒng)的映射查詢,并跳轉(zhuǎn)登錄。因此應(yīng)獨(dú)立開(kāi)發(fā)部署Portal系統(tǒng),具備從LDAP數(shù)據(jù)庫(kù)中讀取各系統(tǒng)映射賬號(hào)的功能,能實(shí)現(xiàn)私有單點(diǎn)登錄協(xié)議的跳轉(zhuǎn)。另外,Portal系統(tǒng)還必須嵌入CAS客戶端代碼和CAS服務(wù)端通訊,實(shí)現(xiàn)認(rèn)證登錄。圖3為Portal單點(diǎn)登錄效果截圖。用戶只需登錄一次就可以跳轉(zhuǎn)到校內(nèi)各應(yīng)用系統(tǒng)。
CAS從客戶端,即各具體業(yè)務(wù)系統(tǒng),目前CAS的官網(wǎng)上已經(jīng)有支持php、java和.net的主流web框架的軟件包,各應(yīng)用系統(tǒng)較小的改動(dòng)就能滿足CAS協(xié)議,實(shí)現(xiàn)單點(diǎn)登錄,具體修改方案可見(jiàn)apereo官方網(wǎng)站的示例。
4業(yè)務(wù)開(kāi)通流程管理
對(duì)于高校信息中心來(lái)說(shuō),日常工作中經(jīng)常需要對(duì)各業(yè)務(wù)系統(tǒng)的賬號(hào)進(jìn)行增刪改、權(quán)限改變以及各系統(tǒng)的使用咨詢,因此在Portal系統(tǒng)上集成電子化申請(qǐng)和咨詢流程,可便于師生理順各軟件系統(tǒng)業(yè)務(wù)辦理流程及使用[6]。目前擁有較多業(yè)務(wù)系統(tǒng)的大企業(yè)都部署了IT服務(wù)管理系統(tǒng)(IT Service Management,ITSM)[7-8],用以提高企業(yè)IT服務(wù)的質(zhì)量和管理水平。對(duì)于企業(yè)來(lái)說(shuō),ITSM系統(tǒng)的主要功能是需求分析管理、故障申告處理、賬號(hào)開(kāi)通、權(quán)限管理及系統(tǒng)使用咨詢等。可以通過(guò)選擇合適的工具部署實(shí)現(xiàn)ITSM,這些工具不僅要求能夠根據(jù)企業(yè)單位的IT管理特點(diǎn)自定義流程和表單等,而且還應(yīng)與已有的系統(tǒng)無(wú)縫對(duì)接[9]。
高校日常較多的業(yè)務(wù)卻是賬號(hào)開(kāi)通、權(quán)限管理和系統(tǒng)使用咨詢,因此沒(méi)有必要獨(dú)立部署一個(gè)ITSM系統(tǒng),但可以借鑒ITSM系統(tǒng)思想,在Portal系統(tǒng)上添加賬號(hào)開(kāi)通和權(quán)限管理的功能。具體的實(shí)現(xiàn)方法就是添加工作流模塊,把IT服務(wù)的每個(gè)步驟分解到個(gè)人(包括每個(gè)系統(tǒng)的業(yè)務(wù)管理員、信息網(wǎng)絡(luò)中心管理員等)。對(duì)于圖書(shū)館和教務(wù)管理等系統(tǒng)來(lái)說(shuō),管理員把所有學(xué)生和老師的賬號(hào)導(dǎo)入到系統(tǒng)而不需要申請(qǐng)開(kāi)通流程;而對(duì)于像OA系統(tǒng),涉及權(quán)限管理;郵件系統(tǒng),涉及個(gè)性化郵件賬號(hào);網(wǎng)絡(luò)課程平臺(tái),涉及子權(quán)限管理(教學(xué)秘書(shū)開(kāi)通和停止課程,不僅僅有管理員一個(gè)權(quán)限)。這些系統(tǒng)就需要開(kāi)通申請(qǐng)流程。因此在Portal系統(tǒng)上整合高校各業(yè)務(wù)系統(tǒng)賬號(hào)的申請(qǐng)流程是很有意義的,可以規(guī)范學(xué)校內(nèi)部IT服務(wù)流程,變被動(dòng)服務(wù)為主動(dòng)服務(wù),提高各個(gè)IT系統(tǒng)管理員的服務(wù)質(zhì)量,有效利用各IT系統(tǒng),提升老師和學(xué)生的服務(wù)感知。學(xué)校的Portal系統(tǒng)已經(jīng)集成了ITSM的賬號(hào)開(kāi)通和權(quán)限管理的功能,目前暫時(shí)只提供給老師使用。在一個(gè)學(xué)期的試用中已經(jīng)接收了近150份左右老師的申請(qǐng)和咨詢,隨著各業(yè)務(wù)系統(tǒng)更廣泛的使用,IT服務(wù)管理模塊的重要性會(huì)更加的凸顯。
5結(jié)束語(yǔ)
目前統(tǒng)一認(rèn)證門(mén)戶方案已經(jīng)在福建商業(yè)高等專(zhuān)科學(xué)校中成功實(shí)施,提供統(tǒng)一的校內(nèi)登錄認(rèn)證服務(wù),CAS協(xié)議的標(biāo)準(zhǔn)性使之易于維護(hù)和更新,而本方案的兼容性降低了實(shí)施統(tǒng)一認(rèn)證平臺(tái)的條件和成本。提出的Portal系統(tǒng)引入業(yè)務(wù)開(kāi)通流程管理的功能也成功實(shí)施,Portal系統(tǒng)成為管理各IT系統(tǒng)的主要系統(tǒng),有效規(guī)范了學(xué)校的IT服務(wù)管理流程。
參考文獻(xiàn):
[1]皮曉東.單點(diǎn)登錄的研究與實(shí)現(xiàn)[J] .計(jì)算機(jī)應(yīng)用與軟件,2007,24(6):156 -158.
[2]Apereo Community.The central authentication service[EB/ OL].(2015-05-13)[2016-03-14].https://www.apereo.org/projects/cas.
[3]沈杰,朱程榮.基于Yale-CAS的單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,(12):144-150.
[4]李新華.基于LDAP的Web統(tǒng)一身份認(rèn)證的研究與實(shí)現(xiàn)[J].科技資訊,2006,(25):75-76.
[5]張齊,鐘觀寶.基于用戶映射的CAS單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息通信技術(shù),2009,(04):6-10.
[6]劉峰,王崢,曹華平,等.基于CAS的門(mén)戶單點(diǎn)登錄方案[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,(06):77-81.
[7] 賈瑞,張瑞娟.以服務(wù)為中心的IT管理——ITSM[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014,(12):58-62.
[8]何秀全,羅圣,夏晴,等.基于ITIL的高校IT服務(wù)管理應(yīng)用研究[J].現(xiàn)代教育技術(shù),2011,(10):60-63.
[9]張亞軍,張金隆,陳江濤.IT服務(wù)管理研究述評(píng)及未來(lái)展望[J].情報(bào)雜志,2013,(06):95-99.
(責(zé)任編輯:楊成平)
Design and Implementation of Unified Authentication Portal Based on CAS in Fujian Commercial College
CHEN Jie,YOU Gui-rong,XIE Ri-min
(Information Network Center,Fujian Commercial College,Fuzhou 350012,China)
Abstract:The article analyzes the principle of CAS protocol,considers the situation in Fujian Commercial College,and we have successfully developed unified authentication portal,standardized campus information system and SSO.It can also support different systems and accounts mapped jumping protocol compatibly,greatly reduce the costs of unified authentication platform.The business process management in portal effectively regulates IT service management process in college.Key words: single sign on;CAS;campus information system;IT service management
* 收稿日期:2016-04-15
基金項(xiàng)目:福建省青年教師科研項(xiàng)目、高校教育信息化專(zhuān)項(xiàng) "基于校園社交網(wǎng)絡(luò)平臺(tái)的應(yīng)用系統(tǒng)架構(gòu)研究"(JA15730)。
作者簡(jiǎn)介:陳杰(1984-),男,福建福州人,助理工程師,碩士。研究方向:數(shù)據(jù)挖掘技術(shù)。
[中圖分類(lèi)號(hào)]TP393.071
[文獻(xiàn)標(biāo)識(shí)碼]A
[文章編號(hào)]1008-4940(2016)03-0041-05