湯其妹
摘要:CAS(Central Authentication Service)可以為Web應(yīng)用系統(tǒng)提供一種可靠的單點登錄方法,應(yīng)用該方法實現(xiàn)了一個統(tǒng)一身份認(rèn)證系統(tǒng),使用戶在訪問多個相互信任的應(yīng)用系統(tǒng)時,只需要進(jìn)行一次統(tǒng)一身份驗證過程,而不必重復(fù)登錄驗證,大大簡化了用戶訪問網(wǎng)絡(luò)資源的過程。特別適用于高校這種業(yè)務(wù)系統(tǒng)眾多且分散在各個部門的情況。該文從CAS原理、認(rèn)證流程、實現(xiàn)方式進(jìn)行了闡述,在CAS部署方面就Server端和Client端分別給出具體的實現(xiàn)方法與詳細(xì)步驟。其研究結(jié)果對于當(dāng)前高校信息化建設(shè)和發(fā)展具有一定的實踐意義。
關(guān)鍵詞:統(tǒng)一身份認(rèn)證;CAS;智慧校園;單點登錄
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
1概述
近年來隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,特別是Web應(yīng)用系統(tǒng)的流行,高校很多二級部門都針對本部門的業(yè)務(wù)開發(fā)了多個業(yè)務(wù)應(yīng)用系統(tǒng),但大多數(shù)仍采用傳統(tǒng)的身份認(rèn)證方式,即每個應(yīng)用系統(tǒng)都有各自獨立的身份認(rèn)證,這種開發(fā)模式不僅造成重復(fù)開發(fā),還嚴(yán)重影響到應(yīng)用系統(tǒng)的性能及用戶使用的方便性。為了解決這些問題,建立一套統(tǒng)一身份認(rèn)證系統(tǒng)迫在眉睫。使用統(tǒng)一身份認(rèn)證系統(tǒng),用戶只需要輸入一次用戶名和密碼信息,驗證成功后再訪問系統(tǒng)中的其他資源時無須重復(fù)登錄。本文基于CAS(Central Authentication SeIvice)實現(xiàn)了統(tǒng)一身份認(rèn)證系統(tǒng),為多個相互信任的應(yīng)用系統(tǒng)提供認(rèn)證服務(wù)的接口,提高了系統(tǒng)的方便性和可操作性,并確保用戶數(shù)據(jù)信息的隱私和安全。
CAS框架通過Java開發(fā)實現(xiàn),為Web身份驗證提供了解決方案,另外CAS為開源項目,可以方便地對源代碼進(jìn)行修改從而適應(yīng)各高校的個性化需求。
2單點登錄及CAS框架介紹
單點登錄和CAS框架是實現(xiàn)統(tǒng)一身份認(rèn)證平臺的關(guān)鍵技術(shù)。本小節(jié)重點介紹單點登錄、CAS框架的原理及認(rèn)證流程,并闡述相比較早期登錄技術(shù)的優(yōu)勢。
2.1單點登錄
隨著教育信息化的發(fā)展,高校在長期的基礎(chǔ)信息建設(shè)過程中已經(jīng)建成了大量的業(yè)務(wù)系統(tǒng),分別是:教務(wù)管理系統(tǒng)、電子政務(wù)OA系統(tǒng)、財務(wù)管理系統(tǒng)、一卡通系統(tǒng)、圖書管理系統(tǒng)、網(wǎng)絡(luò)認(rèn)證計費系統(tǒng)、研究生管理系統(tǒng)等。這些系統(tǒng)分別分散于各個建設(shè)單位,長期以來積累的大量的業(yè)務(wù)數(shù)據(jù),方便了各個部門辦公,提升了一定的管理效率。同時,因為這些系統(tǒng)在建設(shè)之初,缺乏統(tǒng)一的規(guī)劃管理,各個系統(tǒng)的數(shù)據(jù)存在相互不通的現(xiàn)象,給現(xiàn)在的學(xué)校教學(xué)、管理工作帶來了一定的困擾。師生用戶進(jìn)入不同系統(tǒng)需要輸入不同的賬號和密碼,用戶體驗感大大降低,使用率不高,業(yè)務(wù)系統(tǒng)推廣困難。
單點登錄(Single Sign On,SSO),如果一個多業(yè)務(wù)系統(tǒng)應(yīng)用群中部署了單點登錄,則只要一次用戶身份驗證成功,就可以獲取應(yīng)用群中其他應(yīng)用系統(tǒng)的訪問控制權(quán)限,不需要重復(fù)登錄。
單點登錄機(jī)制有用戶、web應(yīng)用和認(rèn)證中心三個角色,其中認(rèn)證中心只能有一個,用戶和web應(yīng)用可以有多個。與傳統(tǒng)的單個系統(tǒng)登錄機(jī)制相比較,單點登錄需要一個統(tǒng)一的身份認(rèn)證中心作為唯一登錄入口來接收用戶提交的賬號、密碼信息,其他web應(yīng)用間接地從認(rèn)證中心獲取授權(quán)。這種授權(quán)通過令牌機(jī)制來實現(xiàn),當(dāng)用戶的登錄信息認(rèn)證通過時,認(rèn)證中心會創(chuàng)建令牌并將其傳遞到各個子系統(tǒng)。從而用戶可以被授權(quán)進(jìn)入各個子系統(tǒng)。
2.2CAS原理及認(rèn)證流程
CAS是耶魯大學(xué)發(fā)起的一個開源項目,能很好地實現(xiàn)單點登錄和統(tǒng)一身份認(rèn)證,其簡單性、時效性、安全性優(yōu)勢,從而被廣泛應(yīng)用。用戶通過CAS認(rèn)證,只需要一次登錄就可以在信任的應(yīng)用系統(tǒng)間互相訪問。
CAS分為CAS服務(wù)器和CAS客戶端兩部分。
1)CAS服務(wù)器
服務(wù)器端是獨立部署的web服務(wù)器,主要負(fù)責(zé)認(rèn)證用戶的身份信息,是單點登錄系統(tǒng)中唯一的認(rèn)證人口。用戶名、密碼等安全信息在CAS認(rèn)證服務(wù)器中稱為用戶憑證。當(dāng)用戶身份認(rèn)證完成后,CAS服務(wù)器還負(fù)責(zé)認(rèn)證訪問各個應(yīng)用系統(tǒng)所需要的各種票據(jù)。
2)CAS客戶端
CAS客戶端通常就是Web應(yīng)用服務(wù)器,CAS客戶端以庫文件形式嵌入到每個應(yīng)用系統(tǒng)中來實現(xiàn)和服務(wù)器端的交互認(rèn)證。當(dāng)用戶訪問時,CAS客戶端不直接進(jìn)行身份認(rèn)證,而是將請求重定向到CAS服務(wù)器端進(jìn)行統(tǒng)一身份認(rèn)證。目前,CAS客戶端支持JSP、PHP、ASP.NET等多種客戶端。
當(dāng)用戶通過瀏覽器訪問CAS客戶端時,客戶端會檢查http或https協(xié)議所攜帶的會話參數(shù)或是服務(wù)器會話中是否攜帶憑證ST(Service Ticket),如果都沒有,CAS客戶端就會重定向用戶的請求到CAS服務(wù)器端并傳遞回調(diào)地址,CAS服務(wù)器端生成TGT(Ticket Granting Ticket)并放入緩存,生成TGC(Ticket Granting Cookie)并寫入客戶端瀏覽器,生成TGT簽發(fā)一個ST,根據(jù)傳遞的回調(diào)地址和ST,用戶再重新訪問CAS客戶端,CAS客戶端根據(jù)ST和CAS服務(wù)器對用戶身份進(jìn)行認(rèn)證。具體認(rèn)證流程如圖1所示。
3基于CAS統(tǒng)一身份認(rèn)證平臺的實現(xiàn)
基于Yale-CAS的單點登錄協(xié)議,并針對原有系統(tǒng)缺點進(jìn)行了改進(jìn),使得認(rèn)證和授權(quán)分離,并且減輕了認(rèn)證服務(wù)器的負(fù)擔(dān),減少了網(wǎng)絡(luò)傳輸,方便用戶快速訪問資源。CAS負(fù)責(zé)簽發(fā)證書、認(rèn)證證書、并對用戶證書進(jìn)行簽名,以確保證書持有者的身份權(quán)限和公鑰的擁有權(quán)。
3.1JSP應(yīng)用接入統(tǒng)一身份認(rèn)證
Step1.拷貝統(tǒng)一身份認(rèn)證客戶端所需jar包到應(yīng)用中;
Step2.配置web.xml文件;
Step3.在應(yīng)用系統(tǒng)程序中獲取cas登錄后的用戶唯一標(biāo)識信息及其他信息。
3.2ASP NET應(yīng)用接入統(tǒng)一身份認(rèn)證
Step1.拷貝Net CasClient客戶端到應(yīng)用中;
Step2.修改web.config文件;
Step3.獲取CAS登錄后的用戶唯一標(biāo)識信息及其他信息;
Step4.退出CAS登錄。
3.3PHP應(yīng)用接入統(tǒng)一身份認(rèn)證平臺
Step1.整合CAS PHP客戶端代碼到項目中;
Step2.獲取CAS登錄后返回的唯一標(biāo)識信息及其他信息;
Step3.配置config.php中CAS配置參數(shù)信息;
Step4.接入CAS認(rèn)證同時獲取登錄后的信息。
以安徽醫(yī)科大學(xué)為例,已通過單點登錄接人13個業(yè)務(wù)系統(tǒng),分別是教務(wù)管理系統(tǒng)、教務(wù)排課系統(tǒng)、財務(wù)管理系統(tǒng)、學(xué)工系統(tǒng)、研究生管理系統(tǒng)、電子政務(wù)OA系統(tǒng)、資產(chǎn)管理系統(tǒng)、一卡通系統(tǒng)、圖書管理系統(tǒng)、網(wǎng)絡(luò)認(rèn)證計費系統(tǒng)、站群系統(tǒng)、郵件系統(tǒng)、網(wǎng)絡(luò)教學(xué)平臺。如圖3、圖4所示。
4部署與測試
CAS部署分別對服務(wù)器端和客戶端進(jìn)行部署,部署結(jié)構(gòu)圖見圖5。
4.1server端部署
服務(wù)器端運行環(huán)境:
操作系統(tǒng)名稱:Cetos