姚文權(quán)

摘 要:隨著信息化發(fā)展,越來越多的應(yīng)用系統(tǒng)應(yīng)運而生。若用戶每使用一個系統(tǒng)都登錄一次,就會給用戶帶來諸多不便,單點登錄機(jī)制能很好地解決這一問題。用戶只需要認(rèn)證一次,無需重復(fù)登錄,實現(xiàn)統(tǒng)一管理和應(yīng)用系統(tǒng)間的無縫連接。基于此,文章對開源技術(shù)的CAS實現(xiàn)單點登錄的原理進(jìn)行了介紹,并介紹在Tomcat中部署CAS配置的方法。
關(guān)鍵詞:統(tǒng)一身份認(rèn)證;單點登錄;SSO;CAS
中圖分類號: TP399 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-8937(2015)24-0082-01
1 背景概述
隨著計算機(jī)技術(shù)的不斷發(fā)展與進(jìn)步,基于B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)的企業(yè)應(yīng)用軟件應(yīng)用更加的廣泛,現(xiàn)在很多企業(yè)生產(chǎn)管理活動都在應(yīng)用企業(yè)應(yīng)用軟件系統(tǒng)。而企業(yè)應(yīng)用軟件系統(tǒng)都不相關(guān),相互獨立,因此具有不同的身份驗證標(biāo)準(zhǔn),在不同的頁面分散登錄與分散管理。因此這就導(dǎo)致企業(yè)工作人員在每個應(yīng)用軟件系統(tǒng)頻繁登陸與注銷,這就嚴(yán)重影響工作的效率。若采用基于統(tǒng)一身份認(rèn)證技術(shù)單點登錄(Single Sign On ,簡稱SSO),就可以避免頻繁地登錄與注銷各個頁面系統(tǒng),提高工作效率。所以企業(yè)應(yīng)當(dāng)采用統(tǒng)一的身份認(rèn)證系統(tǒng),這樣一方面保證用戶操作方便,另一方面還可以保證應(yīng)用系統(tǒng)的安全。
2 CAS 原理和協(xié)議
2.1 CAS訪問流程的步驟
從結(jié)構(gòu)上看,CAS 涵蓋了CAS Server和CAS Client兩個部分:需要獨立部署,CAS Server主要是對用戶的認(rèn)證工作進(jìn)行負(fù)責(zé);CAS Client主要是對客戶端受保護(hù)資源的訪問請求進(jìn)行負(fù)責(zé),需要登錄時,需向CAS Serve重新定向。CAS 訪問流程,如圖1所示,主要有以下步驟:
①訪問服務(wù):用戶通過客戶端瀏覽器發(fā)送請求,訪問應(yīng)用系統(tǒng)提供的服務(wù)資源。
②重定向認(rèn)證:CAS 客戶端收到用戶請求后,重定向用戶請求到CAS服務(wù)器。
③用戶認(rèn)證:用戶輸入信息進(jìn)行身份認(rèn)證。
④發(fā)放票據(jù):CAS 服務(wù)器會產(chǎn)生一個隨機(jī)Service Ticket。
⑤驗證票據(jù):CAS 服務(wù)器驗證票據(jù)Service Ticket的合法性,驗證通過后,允許用戶訪問服務(wù)。
⑥傳輸用戶信息:CAS 服務(wù)器驗證票據(jù)通過后,傳輸用戶認(rèn)證結(jié)果信息給用戶。
2.2 CAS最基本的協(xié)議過程
下面是 CAS 最基本的協(xié)議過程:
和CAS Client 安放在一起的是受保護(hù)的客戶端應(yīng)用系統(tǒng),利用 Filter請求進(jìn)行過濾方式。若受保護(hù)的資源被每個 Web 請求訪問,則CAS Client 就會對該請求進(jìn)行立即分析,對Http請求中是否包含Service Ticket進(jìn)行查看,并將請求向CAS Server登錄地址發(fā)送,并且將Service傳遞(也就是要訪問的目的資源地址),而一旦登陸成功,則可向該地址轉(zhuǎn)回。
用戶則在第3步中將認(rèn)證信息輸入,CAS Server就會隨機(jī)將一個字符數(shù)生成,Service Ticket是不可再造的、唯一的,為了將來驗證需要進(jìn)行延緩,之后對Service所在的地址,系統(tǒng)自動重新登陸,并將一個Ticket Granted Cookie配置到客戶端瀏覽器配置,在拿到Service和新生成的Ticket 之后,CAS Client 在第5、6步中與 CAS Server 進(jìn)行身份驗證,對Service Ticket的正確性提供保障。全部與CAS的交互在這個協(xié)議中,都利用SSL協(xié)議,進(jìn)而對ST和TGC的安全性提供保障。
在工作過程中,該協(xié)議將兩次重新回到Service所在的地址,驗證用戶能夠見到CAS Client與CAS Server之間進(jìn)行Ticket驗證的過程。
3 基于Tomact下的CAS系統(tǒng)搭建流程
3.1 環(huán) 境
選擇軟件版本:Tomcat7.0.32+JDK1.6.0_37
+cas-server-3.5.1+cas-client-3.2.1
3.2 生成證書
生成證書的步驟如下:
①生成服務(wù)器端證書文件,keytool genkey alias server keyalg RSA keystore serverkey。
②將服務(wù)器證書導(dǎo)出為證書文件,keytool export file server.crt alias server keystore serverkey。
③為客戶端JVM導(dǎo)入證書,keytool impor tkeystore% java_home%\jre\lib\cacerts file server.crt alias server。
④將證書應(yīng)用到Web服務(wù)器Tomcat在tomcat目錄下找到得server.xml文件,添加如下:="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups=false"disableUploadTimeout
="true"acceptCount="100" ;
scheme="https"secure="true"clientAuth
="false"sslProtocol="TLS" ;
keystoreFile="/server.keystore"keystorePass="changeit"/>。
3.3 部署CAS server
基于Java實現(xiàn)的CAS Server服務(wù),該服務(wù)要Java Web Application單獨配置在與servlet兼容的Web服務(wù)器上,同時配置CAS Server的服務(wù)器能滿足SSL協(xié)議。只有當(dāng)SSL配置成功,則服務(wù)器上配置的CAS Server才能正常運行。在Tomcat的Webapps目錄中存放cas-server-webapp-3.2.1.war,并重新命名為cas.war,然后將tomcat,重新啟動,再對https://localhost:8443/cas進(jìn)行訪問,之后若出現(xiàn)正常的CAS登錄頁面,則表示CAS Server已經(jīng)配置成功。
CAS Server部署成功后,只是一個缺省的實現(xiàn),可以需要根據(jù)實際概況做擴(kuò)展和定制,最主要的是對(Authentication)接口和CAS Server的界面進(jìn)行擴(kuò)展,由于篇幅,在此不再贅述。
3.4 CAS客戶端部署
在客戶端的JVM導(dǎo)入信任的SERVER的證書,然后將CAS server中target目錄中的CAS.war 復(fù)制到%tomcat_home%\webapps目錄下,并將cas-client\java\lib文件復(fù)制到應(yīng)用程序目錄WEB-INF\lib中在客戶端項目的web.xml配置過濾器。
4 結(jié) 語
企業(yè)應(yīng)用軟件系統(tǒng)都不相關(guān),相互獨立,因此具有不同的身份驗證標(biāo)準(zhǔn),在不同的頁面分散登錄與分散管理。因此這就導(dǎo)致企業(yè)工作人員在每個應(yīng)用軟件系統(tǒng)頻繁登陸與注銷,這就嚴(yán)重影響工作的效率。若采用基于統(tǒng)一身份認(rèn)證技術(shù)單點登錄(Single Sign On ,簡稱SSO),就可以避免頻繁地登錄與注銷各個頁面系統(tǒng),提高工作效率。所以企業(yè)應(yīng)當(dāng)采用統(tǒng)一的身份認(rèn)證系統(tǒng),這樣一方面保證用戶操作方便,另一方面還可以保證應(yīng)用系統(tǒng)的安全。
參考文獻(xiàn):
[1] 袁先珍.基于CAS單點登錄系統(tǒng)的研究與實現(xiàn)[J].電腦與電信,2008,(4).
[2] 裴華艷,王煥民.基于CAS的單點登錄平臺的研究與實現(xiàn)[J].電腦知識與技術(shù),2014,(3).