資源描述:
《使用 cas 在 tomcat 中實現(xiàn)單點登錄》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、一、使用CAS在Tomcat中實現(xiàn)單點登錄CAS介紹CAS是Yale大學(xué)發(fā)起的一個開源項目,旨在為Web應(yīng)用系統(tǒng)提供一種可靠的單點登錄方法,CAS在2004年12月正式成為JA-SIG的一個項目。CAS具有以下特點:·開源的企業(yè)級單點登錄解決方案。·CASServer為需要獨立部署的Web應(yīng)用。·CASClient支持非常多的客戶端(這里指單點登錄系統(tǒng)中的各個Web應(yīng)用),包括Java,.Net,PHP,Perl,Apache,uPortal,Ruby等。CAS原理和協(xié)議從結(jié)構(gòu)上看,CAS包含兩個部分:C
2、ASServer和CASClient。CASServer需要獨立部署,主要負責(zé)對用戶的認證工作;CASClient負責(zé)處理對客戶端受保護資源的訪問請求,需要登錄時,重定向到CASServer。圖1是CAS最基本的協(xié)議過程:圖1.CAS基礎(chǔ)協(xié)議CASClient與受保護的客戶端應(yīng)用部署在一起,以Filter方式保護受保護的資源。對于訪問受保護資源的每個Web請求,CASClient會分析該請求的Http請求中是否包含ServiceTicket,如果沒有,則說明當(dāng)前用戶尚未登錄,于是將請求重定向到指定好的CA
3、SServer登錄地址,并傳遞Service(也就是要訪問的目的資源地址),以便登錄成功過后轉(zhuǎn)回該地址。用戶在第3步中輸入認證信息,如果登錄成功,CASServer隨機產(chǎn)生一個相當(dāng)長度、唯一、不可偽造的ServiceTicket,并緩存以待將來驗證,之后系統(tǒng)自動重定向到Service所在地址,并為客戶端瀏覽器設(shè)置一個TicketGrantedCookie(TGC),CASClient在拿到Service和新產(chǎn)生的Ticket過后,在第5,6步中與CASServer進行身份合適,以確保ServiceTick
4、et的合法性。在該協(xié)議中,所有與CAS的交互均采用SSL協(xié)議,確保,ST和TGC的安全性。協(xié)議工作過程中會有2次重定向的過程,但是CASClient與CASServer之間進行Ticket驗證的過程對于用戶是透明的。另外,CAS協(xié)議中還提供了Proxy(代理)模式,以適應(yīng)更加高級、復(fù)雜的應(yīng)用場景,具體介紹可以參考CAS官方網(wǎng)站上的相關(guān)文檔。準備工作本文中的例子以tomcat5.5為例進行講解,下載地址:http://tomcat.apache.org/download-55.cgi到CAS官方網(wǎng)站下載CA
5、SServer和Client,地址分別為:http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.ziphttp://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip部署CASServerCASServer是一套基于Java實現(xiàn)的服務(wù),該服務(wù)以一個JavaWebApplication單獨部署在與servlet2.3兼容的Web服務(wù)器上,另外,由于Client與CAS
6、Server之間的交互采用Https協(xié)議,因此部署CASServer的服務(wù)器還需要支持SSL協(xié)議。當(dāng)SSL配置成功過后,像普通Web應(yīng)用一樣將CASServer部署在服務(wù)器上就能正常運行了,不過,在真正使用之前,還需要擴展驗證用戶的接口。在Tomcat上部署一個完整的CASServer主要按照以下幾個步驟:配置Tomcat使用Https協(xié)議如果希望Tomcat支持Https,主要的工作是配置SSL協(xié)議,其配置過程和配置方法可以參考Tomcat的相關(guān)文檔。不過在生成證書的過程中,會有需要用到主機名的地方,C
7、AS建議不要使用IP地址,而要使用機器名或域名。部署CASServerCASServer是一個Web應(yīng)用包,將前面下載的cas-server-3.1.1-release.zip解開,把其中的cas-server-webapp-3.1.1.war拷貝到tomcat的webapps目錄,并更名為cas.war。由于前面已配置好tomcat的https協(xié)議,可以重新啟動tomcat,然后訪問:https://localhost:8443/cas,如果能出現(xiàn)正常的CAS登錄頁面,則說明CASServer已經(jīng)部署成
8、功。雖然CASServer已經(jīng)部署成功,但這只是一個缺省的實現(xiàn),在實際使用的時候,還需要根據(jù)實際概況做擴展和定制,最主要的是擴展認證(Authentication)接口和CASServer的界面。擴展認證接口CASServer負責(zé)完成對用戶的認證工作,它會處理登錄時的用戶憑證(Credentials)信息,用戶名/密碼對是最常見的憑證信息。CASServer可能需要到數(shù)據(jù)庫檢索一條用戶帳號信息,也可能在XML文件中檢索用戶名/