火龍果軟件-CAS系統的基本使用_第1頁
火龍果軟件-CAS系統的基本使用_第2頁
火龍果軟件-CAS系統的基本使用_第3頁
火龍果軟件-CAS系統的基本使用_第4頁
火龍果軟件-CAS系統的基本使用_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、簡介: 單點登錄(Single Sign On , 簡稱 SSO )是目前比較流行的服務于企業業務整合的解決方案之一, SSO 使得在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。CAS(Central Authentication Service)是一款不錯的針對 Web 應用的單點登錄框架,本文介紹了 CAS 的原理、協議、在 Tomcat 中的配置和使用,對于采用 CAS 實現輕量級單點登錄解決方案的入門讀者具有一定指導作用。CAS 介紹CAS 是 Yale 大學發起的一個開源項目,旨在為 Web 應用系統提供一種可靠的單點登錄方法,CAS 在 2004

2、年 12 月正式成為 JA-SIG 的一個項目。CAS 具有以下特點:· 開源的企業級單點登錄解決方案。· CAS Server 為需要獨立部署的 Web 應用。· CAS Client 支持非常多的客戶端(這里指單點登錄系統中的各個 Web 應用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。CAS 原理和協議從結構上看,CAS 包含兩個部分: CAS Server 和 CAS Client。CAS Server 需要獨立部署,主要負責對用戶的認證工作;CAS Client 負責處理對客戶端受保護資源的訪問

3、請求,需要登錄時,重定向到 CAS Server。圖1 是 CAS 最基本的協議過程:圖 1. CAS 基礎協議CAS Client 與受保護的客戶端應用部署在一起,以 Filter 方式保護受保護的資源。對于訪問受保護資源的每個 Web 請求,CAS Client 會分析該請求的 Http 請求中是否包含 Service Ticket,如果沒有,則說明當前用戶尚未登錄,于是將請求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪問的目的資源地址),以便登錄成功過后轉回該地址。用戶在第 3 步中輸入認證信息,如果登錄成功,CAS Server 隨機產生一個相

4、當長度、唯一、不可偽造的 Service Ticket,并緩存以待將來驗證,之后系統自動重定向到 Service 所在地址,并為客戶端瀏覽器設置一個 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產生的 Ticket 過后,在第 5,6 步中與 CAS Server 進行身份合適,以確保 Service Ticket 的合法性。在該協議中,所有與 CAS 的交互均采用 SSL 協議,確保,ST 和 TGC 的安全性。協議工作過程中會有 2 次重定向的過程,但是 CAS Client 與 CAS Server 之間進行 Ticket 驗證

5、的過程對于用戶是透明的。另外,CAS 協議中還提供了 Proxy (代理)模式,以適應更加高級、復雜的應用場景,具體介紹可以參考 CAS 官方網站上的相關文檔。Tomcat 與 cas 集成 實驗背景: 系統環境: Windows XP  |  SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 主機完整名稱: Linly 瀏覽器: FireFox V1 實驗步驟: STEP 1,搭建Java Web服務器環境 安裝 JDK + Tomcat 6.0.14 , HTTP端口8080

6、 , HTTPS端口8443 JAVA_HOME = D:/Java/jdk1.6.0_04 CATALINA_HOME = D:/Java/apache-tomcat-6.0.14 安裝完畢,啟動Tomcat ,在瀏覽器上 測試 http:/Linly:8080/ 出現上述界面,表明系統STEP1成功搭建。 STEP 2,使用Java Keytool工具為系統生成HTTPS證書,并為系統注冊 (Java Keytool相關資料可參閱:Java keytool 安全證書學習筆記), 在DOS窗體運行以下指令(建議編寫一個BAT批處理文件執行) cls rem please set the en

7、v JAVA_HOME before run this bat file rem delete alia tomcat if it is existed keytool -delete -alias tomcatsso -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit keytool -delete -alias tomcatsso -storepass changeit (注釋: 清除系統中可能存在的名字為tomcatsso 的同名證書) rem list all alias in the cacerts k

8、eytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit (注釋: 列出系統證書倉庫中存在證書名稱列表) rem generator a key keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=linly" -storepass changeit (注釋:指定使用RSA算法,生成別名為tomcatsso的證書,存貯口令為changeit,證書的DN為"cn=linly" ,這個DN必須同當前

9、主機完整名稱一致哦,切記!)rem export the key keytool -export -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit (注釋: 從keystore中導出別名為tomcatsso的證書,生成文件tomcatsso.crt)rem import into trust cacerts keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -k

10、eystore %java_home%/jre/lib/security/cacerts -storepass changeit (注釋:將tomcatsso.crt導入jre的可信任證書倉庫。注意,安裝JDK是有兩個jre目錄,一個在jdk底下,一個是獨立的jre,這里的目錄必須同Tomcat使用的jre目錄一致,否則后面Tomcat的HTTPS通訊就找不到證書了) rem list all alias in the cacerts keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

11、 (注釋:列出jre可信任證書倉庫中證書名單,驗證先前的導入是否成功,如果導入成功,應該在列表中能找到tomcatsso這個別名,如下圖)/quote 同時,在D:/Java/jdk1.6.0_04/jre/lib/security目錄下能找到“tomcatsso.crt”這個文件;在C:/Documents and Settings/Linly目錄下能找到“.keystore”文件。 滿足上述條件則STEP2部署完成。 STEP 3,配置Tomcat的HTTPS服務 編輯D:/Java/apache-tomcat-6.0.14/conf下的server.xml文件,在connector的配置

12、位置添加以下的配置: 引用<Connector protocol="org.apache.coyote.http11.Http11Protocol"            port="8443" minSpareThreads="5" maxSpareThreads="75"            enableL

13、ookups="true" disableUploadTimeout="true"            acceptCount="100"  maxThreads="200"            scheme="https" secure="true" SSLEna

14、bled="true"            keystoreFile="C:/Documents and Settings/new/.keystore" keystorePass="changeit"            truststoreFile="D:/Java/jdk1.6.0_04/jre/lib/security

15、/cacerts"            clientAuth="false" sslProtocol="TLS"/>啟動Tomcat,訪問https:/linly:8443/,出現以下界面說明HTTPS配置生效: STEP 4,為HelloWorldExample程序配置CAS過濾器 訪問http:/linly:8080/examples/servlets/servlet/HelloWorldExample,出現以下界面說明應用正常啟動:

16、 編輯D:/Java/apache-tomcat-6.0.14/webapps/examples/WEB-INF下的web.xml文件,添加如下信息: 引用<filter> <filter-name>CAS Filter</filter-name> <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class> <init-param>   <param-name>edu.yale.its.tp.cas.client.f

17、ilter.loginUrl</param-name>   <param-value>https:/Linly:8443/cas/login</param-value> </init-param> <init-param>   <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>   <param-value>https:/Linly:8443/cas/serviceValidate

18、</param-value> </init-param> <init-param>   <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>   <param-value>Linly:8080</param-value> </init-param> </filter> 引用<filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/servlets/servlet/HelloWorldExample</url-pattern> </filter-mapping> 拷貝casclient.jar文件到目錄D:/Java/apache-tomcat-6.0.14/webapps/examples/WEB-INF/lib下。 由于我們使用的是Tomcat6.0.14,因此,還要拷貝commons-logging-1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論