湯其妹



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