版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、簡(jiǎn)介:?jiǎn)吸c(diǎn)登錄(Single Sign On , 簡(jiǎn)稱 SSO )是目前比較流行的服務(wù)于企業(yè)業(yè)務(wù)整合的解決方案之一, SSO 使得在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)。CAS(Central Authentication Service)是一款不錯(cuò)的針對(duì) Web 應(yīng)用的單點(diǎn)登錄框架,本文介紹了 CAS 的原理、協(xié)議、在 Tomcat 中的配置和使用,對(duì)于采用 CAS 實(shí)現(xiàn)輕量級(jí)單點(diǎn)登錄解決方案的入門讀者具有一定指導(dǎo)作用。CAS 介紹CAS 是 Yale 大學(xué)發(fā)起的一個(gè)開源項(xiàng)目,旨在為 Web 應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄方法,CAS 在 2004 年 12 月
2、正式成為 JA-SIG 的一個(gè)項(xiàng)目。CAS 具有以下特點(diǎn): 開源的企業(yè)級(jí)單點(diǎn)登錄解決方案。 CAS Server 為需要獨(dú)立部署的 Web 應(yīng)用。 CAS Client 支持非常多的客戶端(這里指單點(diǎn)登錄系統(tǒng)中的各個(gè) Web 應(yīng)用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。CAS 原理和協(xié)議從結(jié)構(gòu)上看,CAS 包含兩個(gè)部分: CAS Server 和 CAS Client。CAS Server 需要獨(dú)立部署,主要負(fù)責(zé)對(duì)用戶的認(rèn)證工作;CAS Client 負(fù)責(zé)處理對(duì)客戶端受保護(hù)資源的訪問請(qǐng)求,需要登錄時(shí),重定向到 CAS Server
3、。圖1 是 CAS 最基本的協(xié)議過程:圖 1. CAS 基礎(chǔ)協(xié)議CAS Client 與受保護(hù)的客戶端應(yīng)用部署在一起,以 Filter 方式保護(hù)受保護(hù)的資源。對(duì)于訪問受保護(hù)資源的每個(gè) Web 請(qǐng)求,CAS Client 會(huì)分析該請(qǐng)求的 Http 請(qǐng)求中是否包含 Service Ticket,如果沒有,則說明當(dāng)前用戶尚未登錄,于是將請(qǐng)求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪問的目的資源地址),以便登錄成功過后轉(zhuǎn)回該地址。用戶在第 3 步中輸入認(rèn)證信息,如果登錄成功,CAS Server 隨機(jī)產(chǎn)生一個(gè)相當(dāng)長(zhǎng)度、唯一、不可偽造的 Service Tic
4、ket,并緩存以待將來驗(yàn)證,之后系統(tǒng)自動(dòng)重定向到 Service 所在地址,并為客戶端瀏覽器設(shè)置一個(gè) Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過后,在第 5,6 步中與 CAS Server 進(jìn)行身份合適,以確保 Service Ticket 的合法性。在該協(xié)議中,所有與 CAS 的交互均采用 SSL 協(xié)議,確保,ST 和 TGC 的安全性。協(xié)議工作過程中會(huì)有 2 次重定向的過程,但是 CAS Client 與 CAS Server 之間進(jìn)行 Ticket 驗(yàn)證的過程對(duì)于用戶是透明的。另外,CAS 協(xié)議中還提
5、供了 Proxy (代理)模式,以適應(yīng)更加高級(jí)、復(fù)雜的應(yīng)用場(chǎng)景,具體介紹可以參考 CAS 官方網(wǎng)站上的相關(guān)文檔。Tomcat 與 cas 集成 實(shí)驗(yàn)背景: 系統(tǒng)環(huán)境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 主機(jī)完整名稱: Linly 瀏覽器: FireFox V1 實(shí)驗(yàn)步驟: 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 安裝完畢,啟動(dòng)Tomcat ,在瀏覽器上 測(cè)試 http:/Linly:8080/ 出現(xiàn)上述界面,表明系統(tǒng)STEP1成功搭建。 STEP 2,使用Java Keytool工具為系統(tǒng)生成HTTPS證書,并為系統(tǒng)注冊(cè) (Java Keytool相關(guān)資料可參閱:Java keytool 安全證書學(xué)習(xí)筆記), 在DOS窗體運(yùn)行以下指令(建議編寫一個(gè)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)證書倉(cāng)庫(kù)中存在證書名稱列表) rem generator a key keytool -genkey -keyalg RSA -alias tomcatsso -dname cn=linly -storepass changeit (注釋:指定使用RSA算法,生成別名為tomcatsso的證書,存貯口令為changeit,證書的DN為cn=linly ,這個(gè)DN必須同當(dāng)前主機(jī)完整名稱一致哦,切記!)rem 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的可信任證書倉(cāng)庫(kù)。注意,安裝JDK是有兩個(gè)jre目錄,一個(gè)在jdk底下,一個(gè)是獨(dú)立的jre,這里的目錄必須同Tomcat使用的jre目錄一致,否則后面Tomcat的HTTPS通訊就找不到證書了) rem list all alias in the cacerts keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit (注釋:列出jre可信任證書倉(cāng)庫(kù)中證書名單,驗(yàn)證先前的導(dǎo)入是否成功,如果導(dǎo)入成功,應(yīng)該在列表中能找到tomcatsso
11、這個(gè)別名,如下圖)/quote 同時(shí),在D:/Java/jdk1.6.0_04/jre/lib/security目錄下能找到“tomcatsso.crt”這個(gè)文件;在C:/Documents and Settings/Linly目錄下能找到“.keystore”文件。 滿足上述條件則STEP2部署完成。 STEP 3,配置Tomcat的HTTPS服務(wù) 編輯D:/Java/apache-tomcat-6.0.14/conf下的server.xml文件,在connector的配置位置添加以下的配置: 引用啟動(dòng)Tomcat,訪問https:/linly:8443/,出現(xiàn)以下界面說明HTTPS配置生效
12、: STEP 4,為HelloWorldExample程序配置CAS過濾器 訪問http:/linly:8080/examples/servlets/servlet/HelloWorldExample,出現(xiàn)以下界面說明應(yīng)用正常啟動(dò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目錄下。啟動(dòng)Tomcat,訪問網(wǎng)址http:/linly:8080/cas/index.jsp,出現(xiàn)以下畫面: 輸入用戶名/密碼 :linly/linly(任意兩個(gè)相同的字竄),點(diǎn)擊“登錄”,出現(xiàn)以下畫面: 表示CAS服務(wù)器配置運(yùn)行成功。 STEP 6,測(cè)試JA-SIG(CAS)部署結(jié)果 啟動(dòng)Tomcat。 測(cè)試使用瀏覽器登陸以下網(wǎng)址:http:/linly:8080/examples/servlets/servlet/HelloWorldExample,頁(yè)面將彈出以下認(rèn)證框,點(diǎn)擊“確定” 頁(yè)面將重定向到JA-SIG的SSO登錄認(rèn)證頁(yè)面 輸入用戶名=密碼,如:linly/linly,則通過驗(yàn)證,進(jìn)入應(yīng)用的入口界面,如下:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)投資居間服務(wù)盡職調(diào)查合同3篇
- 二零二五年度二手車過戶業(yè)務(wù)資金監(jiān)管及擔(dān)保服務(wù)合同
- 二零二五年度出租車車輛租賃與乘客服務(wù)滿意度調(diào)查合同3篇
- 二零二五年度SEO關(guān)鍵詞研究及分析服務(wù)合同2篇
- 二零二五年度海上貨物共同海損處理合同3篇
- 二零二五年度新媒體短視頻節(jié)目制作服務(wù)協(xié)議2篇
- 豌豆的種植課程設(shè)計(jì)
- 2025年度數(shù)據(jù)中心冷卻系統(tǒng)安裝工程合同9篇
- 二零二五年度房屋買賣合同范本:維修基金結(jié)算3篇
- 二零二五年度婚姻登記處離婚協(xié)議書離婚后子女財(cái)產(chǎn)繼承服務(wù)合同3篇
- 22G101三維立體彩色圖集
- 2024高中歷史中外歷史綱要下冊(cè)重點(diǎn)知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- MQL4命令中文詳解手冊(cè)
- 水平井施工方案及措施
- 資產(chǎn)評(píng)估常用數(shù)據(jù)與參數(shù)手冊(cè)
- 分子影像學(xué)概論培訓(xùn)課件
- 小學(xué)四年級(jí)數(shù)學(xué)上冊(cè)促銷問題
- 國(guó)內(nèi)外中學(xué)數(shù)學(xué)教學(xué)改革與發(fā)展
- 六年級(jí)上冊(cè)語(yǔ)文分層作業(yè)優(yōu)秀設(shè)計(jì)案例
- 商品拍攝與素材編輯-課程標(biāo)準(zhǔn)
- 中等職業(yè)學(xué)校班主任能力比賽幼兒保育專業(yè)班級(jí)建設(shè)方案
評(píng)論
0/150
提交評(píng)論