版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、簡介:單點登錄(Single Sign On , 簡稱 SSO )是目前比較流行的服務(wù)于企業(yè)業(yè)務(wù)整合的解決方案之一, SSO 使得在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。CAS(Central Authentication Service)是一款不錯的針對 Web 應(yīng)用的單點登錄框架,本文介紹了 CAS 的原理、協(xié)議、在 Tomcat 中的配置和使用,對于采用 CAS 實現(xiàn)輕量級單點登錄解決方案的入門讀者具有一定指導(dǎo)作用。CAS 介紹CAS 是 Yale 大學(xué)發(fā)起的一個開源項目,旨在為 Web 應(yīng)用系統(tǒng)提供一種可靠的單點登錄方法,CAS 在 2004 年 12 月
2、正式成為 JA-SIG 的一個項目。CAS 具有以下特點: 開源的企業(yè)級單點登錄解決方案。 CAS Server 為需要獨立部署的 Web 應(yīng)用。 CAS Client 支持非常多的客戶端(這里指單點登錄系統(tǒng)中的各個 Web 應(yīng)用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。CAS 原理和協(xié)議從結(jié)構(gòu)上看,CAS 包含兩個部分: CAS Server 和 CAS Client。CAS Server 需要獨立部署,主要負責(zé)對用戶的認證工作;CAS Client 負責(zé)處理對客戶端受保護資源的訪問請求,需要登錄時,重定向到 CAS Server
3、。圖1 是 CAS 最基本的協(xié)議過程:圖 1. CAS 基礎(chǔ)協(xié)議CAS Client 與受保護的客戶端應(yīng)用部署在一起,以 Filter 方式保護受保護的資源。對于訪問受保護資源的每個 Web 請求,CAS Client 會分析該請求的 Http 請求中是否包含 Service Ticket,如果沒有,則說明當(dāng)前用戶尚未登錄,于是將請求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪問的目的資源地址),以便登錄成功過后轉(zhuǎn)回該地址。用戶在第 3 步中輸入認證信息,如果登錄成功,CAS Server 隨機產(chǎn)生一個相當(dāng)長度、唯一、不可偽造的 Service Tic
4、ket,并緩存以待將來驗證,之后系統(tǒng)自動重定向到 Service 所在地址,并為客戶端瀏覽器設(shè)置一個 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過后,在第 5,6 步中與 CAS Server 進行身份合適,以確保 Service Ticket 的合法性。在該協(xié)議中,所有與 CAS 的交互均采用 SSL 協(xié)議,確保,ST 和 TGC 的安全性。協(xié)議工作過程中會有 2 次重定向的過程,但是 CAS Client 與 CAS Server 之間進行 Ticket 驗證的過程對于用戶是透明的。另外,CAS 協(xié)議中還提
5、供了 Proxy (代理)模式,以適應(yīng)更加高級、復(fù)雜的應(yīng)用場景,具體介紹可以參考 CAS 官方網(wǎng)站上的相關(guān)文檔。Tomcat 與 cas 集成 實驗背景: 系統(tǒng)環(huán)境: 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服務(wù)器環(huán)境 安裝 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443 JAVA_HOME = D:/Java/j
6、dk1.6.0_04 CATALINA_HOME = D:/Java/apache-tomcat-6.0.14 安裝完畢,啟動Tomcat ,在瀏覽器上 測試 http:/Linly:8080/ 出現(xiàn)上述界面,表明系統(tǒng)STEP1成功搭建。 STEP 2,使用Java Keytool工具為系統(tǒng)生成HTTPS證書,并為系統(tǒng)注冊 (Java Keytool相關(guān)資料可參閱:Java keytool 安全證書學(xué)習(xí)筆記), 在DOS窗體運行以下指令(建議編寫一個BAT批處理文件執(zhí)行) cls rem please set the env JAVA_HOME before run this bat file
7、 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 (注釋: 清除系統(tǒng)中可能存在的名字為tomcatsso 的同名證書) rem list all alias in the cacerts keytool -list -keystore %JAVA_HOME%/j
8、re/lib/security/cacerts -storepass changeit (注釋: 列出系統(tǒng)證書倉庫中存在證書名稱列表) rem generator a key keytool -genkey -keyalg RSA -alias tomcatsso -dname cn=linly -storepass changeit (注釋:指定使用RSA算法,生成別名為tomcatsso的證書,存貯口令為changeit,證書的DN為cn=linly ,這個DN必須同當(dāng)前主機完整名稱一致哦,切記?。﹔em export the key keytool -export -alias tomc
9、atsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit (注釋: 從keystore中導(dǎo)出別名為tomcatsso的證書,生成文件tomcatsso.crt)rem import into trust cacerts keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -keystore %java_home%/jre/lib/security/cacerts -storepass chan
10、geit (注釋:將tomcatsso.crt導(dǎo)入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 (注釋:列出jre可信任證書倉庫中證書名單,驗證先前的導(dǎo)入是否成功,如果導(dǎo)入成功,應(yīng)該在列表中能找到tomcatsso
11、這個別名,如下圖)/quote 同時,在D:/Java/jdk1.6.0_04/jre/lib/security目錄下能找到“tomcatsso.crt”這個文件;在C:/Documents and Settings/Linly目錄下能找到“.keystore”文件。 滿足上述條件則STEP2部署完成。 STEP 3,配置Tomcat的HTTPS服務(wù) 編輯D:/Java/apache-tomcat-6.0.14/conf下的server.xml文件,在connector的配置位置添加以下的配置: 引用啟動Tomcat,訪問https:/linly:8443/,出現(xiàn)以下界面說明HTTPS配置生效
12、: STEP 4,為HelloWorldExample程序配置CAS過濾器 訪問http:/linly:8080/examples/servlets/servlet/HelloWorldExample,出現(xiàn)以下界面說明應(yīng)用正常啟動: 編輯D:/Java/apache-tomcat-6.0.14/webapps/examples/WEB-INF下的web.xml文件,添加如下信息: 引用 CAS Filter edu.yale.its.tp.cas.client.filter.CASFilter edu.yale.its.tp.cas.client.filter.loginUrl https:/
13、Linly:8443/cas/login edu.yale.its.tp.cas.client.filter.validateUrl https:/Linly:8443/cas/serviceValidate edu.yale.its.tp.cas.client.filter.serverName Linly:8080 引用 CAS Filter /servlets/servlet/HelloWorldExample 拷貝casclient.jar文件到目錄D:/Java/apache-tomcat-6.0.14/webapps/examples/WEB-INF/lib下。 由于我們使用的是T
14、omcat6.0.14,因此,還要拷貝commons-logging-1.0.4.jar到該目錄下。 STEP 5,部署JA-SIG(CAS)服務(wù)器 拷貝cas.war到D:/Java/apache-tomcat-6.0.14/webapps目錄下。啟動Tomcat,訪問網(wǎng)址http:/linly:8080/cas/index.jsp,出現(xiàn)以下畫面: 輸入用戶名/密碼 :linly/linly(任意兩個相同的字竄),點擊“登錄”,出現(xiàn)以下畫面: 表示CAS服務(wù)器配置運行成功。 STEP 6,測試JA-SIG(CAS)部署結(jié)果 啟動Tomcat。 測試使用瀏覽器登陸以下網(wǎng)址:http:/linly:8080/examples/servlets/servlet/HelloWorldExample,頁面將彈出以下認證框,點擊“確定” 頁面將重定向到JA-SIG的SSO登錄認證頁面 輸入用戶名=密碼,如:linly/linly,則通過驗證,進入應(yīng)用的入口界面,如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版異地離婚協(xié)議書
- 2024屆山東省濟南市歷城某中學(xué)54級高三第二次診斷性檢測語文試卷含解析
- 2024版項目管理與咨詢服務(wù)合同3篇
- 2024鐵路貨物運輸合同標的概述
- 2025年度寵物店店鋪轉(zhuǎn)讓及寵物養(yǎng)護服務(wù)協(xié)議3篇
- 2024美團外賣店外賣配送服務(wù)規(guī)范合同范本3篇
- (單元知識考點 + 歷年考試高頻題)譯林版四年級上冊Unit 5 Our new home
- 2024運動員參賽免責(zé)協(xié)議書模板
- 2025年度廠房租賃安全協(xié)議:安全生產(chǎn)信息化與數(shù)據(jù)監(jiān)測合同3篇
- 麻醉學(xué)-中西醫(yī)結(jié)合系課件
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標準(2024版)宣傳畫冊
- DB11∕T 353-2021 城市道路清掃保潔質(zhì)量與作業(yè)要求
- 氣候變化與林業(yè)碳匯智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 火災(zāi)自動報警系統(tǒng)施工及驗收調(diào)試報告
- 2023屆高考英語《新課程標準》3000詞總表(字母順序版)素材
- 培訓(xùn)課件-核電質(zhì)保要求
- 過敏原檢測方法分析
- TSG_R0004-2009固定式壓力容器安全技術(shù)監(jiān)察規(guī)程
- 室外給水排水和燃氣熱力工程抗震設(shè)計規(guī)范
- 《三國演義》整本書閱讀任務(wù)單
- 大型平板車安全管理規(guī)定.doc
評論
0/150
提交評論