高級篇cas單點登錄_第1頁
高級篇cas單點登錄_第2頁
高級篇cas單點登錄_第3頁
高級篇cas單點登錄_第4頁
高級篇cas單點登錄_第5頁
免費預覽已結(jié)束,剩余27頁可下載查看

下載本文檔

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

文檔簡介

1、北京傳智播客教育 單點登錄專題講師:張孝祥北京傳智播客教育 Tip1:用Tomcat配置虛擬主機 瀏覽器訪問WEB資源的過程分析虛擬主機及實現(xiàn)原理 Tomcat體系結(jié)構基于主機名的虛擬主機 北京傳智播客教育 瀏覽器訪問WEB資源的過程分析URL格式: http:/主機名(或IP地址):端口號/目錄名稱/資源名稱舉例: 思考: 中的 是代表一臺計算機的地址,還是代表一個網(wǎng)站的地址呢?網(wǎng)站的地址與計算機的地址有什么關系和區(qū)別呢?一個計算機地址上對應多個網(wǎng)站地址,它們是一對多的關系!動手體驗:用telnet程序分析瀏覽器訪問WEB資源的過程 多學兩招:打開telnet程序的本地回顯功能 北京傳智播客

2、教育 虛擬主機及實現(xiàn)原理 目的:在一臺計算機上創(chuàng)建多個WEB站點,并為每個WEB站點設置不同的主目錄和虛擬子目錄,每個WEB站點作為各自獨立的網(wǎng)站分配給不同的公司或部門。 好處:多個公司或部門的網(wǎng)站就可以共用同一臺計算機,而用戶感覺每個公司和部門都有各自獨立的網(wǎng)站。多個沒有實力在Internet上架設自己專用服務器的中小公司可以聯(lián)合租用一臺WEB服務器,對外提供各自的WEB服務而互不影響。 原理:WEB服務器上的每個WEB站點必須設置有不同的標識信息WEB瀏覽器發(fā)出的連接和請求信息中包含WEB站點的標識信息WEB站點的標識信息:IP地址、端口號、主機名北京傳智播客教育 Tomcat體系結(jié)構 北

3、京傳智播客教育 基于主機名的虛擬主機配置 請求消息2:GET / HTTP/1.1Host: server.xml文件設置請求消息1:GET / HTTP/1.1Host: 北京傳智播客教育 基于主機名的虛擬主機網(wǎng)絡環(huán)境 動手體驗:使用Tomcat建立基于主機名稱的虛擬主機 WEB瀏覽器要訪問基于主機名的虛擬主機時,在訪問URL中必須采用主機名,而不能采用IP地址。 在整個網(wǎng)絡系統(tǒng)中建立主機名與IP地址的映射關系,即必須將主機名添加到名稱解析系統(tǒng)。使用客戶機本地的Hosts 文件,例如,c:winntSystem32DriversEtcHosts使用DNS(Domain Name System

4、,域名系統(tǒng))服務器 北京傳智播客教育 Tip2:為站點增加自動登錄和單點登錄功能自動登錄的實現(xiàn)原理Cookie技術回顧與分析自動登陸的幾種編碼技術自動登錄處理流程的活動圖自動登錄的編碼實現(xiàn)增加自動登錄的安全性北京傳智播客教育 自動登錄功能與實現(xiàn)原理需求分析用戶一旦使用瀏覽器登錄某個站點和關閉瀏覽器后,在以后兩個星期內(nèi),只要用戶啟動該瀏覽器訪問該站點的任何頁面時,都將自動完成登錄。很顯然,該功能要求瀏覽器一旦登錄以后的兩個星期內(nèi),瀏覽器所在客戶機上必須保留有用戶帳號信息,并且,瀏覽器在以后設定的時間期限內(nèi)訪問該站點時,必須自動向服務器提交保留在客戶機上的用戶帳號信息。實現(xiàn)原理想一想:用什么樣的W

5、eb技術可以實現(xiàn)這樣的功能呢?北京傳智播客教育 Cookie的傳送過程示意圖 第一次訪問不存在Server1的Cookie寫入Server1的Cookie第一次響應Set-Cookie2: name=value第一次訪問請求WEBServer1WEBServer2瀏覽器Server1的CookieServer2的CookieCookie存儲區(qū)后續(xù)訪問存在Server1的Cookie后續(xù)訪問請求Cookie: name=value北京傳智播客教育 Set-Cookie2響應頭字段Set-Cookie2頭字段用于指定WEB服務器向客戶端傳送的Cookie內(nèi)容,但是按照Netscape規(guī)范實現(xiàn)Coo

6、kie功能的WEB服務器,使用的是Set-Cookie頭字段,兩者的語法和作用類似。 Set-Cookie2頭字段中設置的cookie內(nèi)容是具有一定格式的字符串,它必須以Cookie的名稱和設置值開頭,格式為“名稱=值”,后面可以加上0個或多個以分號(;)和空格分隔的其它可選屬性,屬性格式一般為“屬性名=值”。 舉例:Set-Cookie2: user=it315; Version=1; Path=/除了“名稱=值”對必須位于最前面外,其它的可選屬性的先后順序可以任意。Cookie的名稱只能由普通的英文ASCII字符組成,瀏覽器不用關心和理解Cookie的值部分的意義和格式,只要WEB服務器能

7、理解值部分的意義就行。大多數(shù)現(xiàn)有的WEB服務器都是采用某種編碼方式將值部分的內(nèi)容編碼成可打印的ASCII字符,RFC 2965規(guī)范中沒有明確限定編碼方式。北京傳智播客教育 Set-Cookie2頭字段中的屬性 Comment=value Discard Domain=value 例如:Set-Cookie2: user=it315; Version=1; Path=/; Max-Age=value Path=value Port=portlist Secure Version=value 北京傳智播客教育 自動登錄的幾種編碼技術模板方法設計模式所有的Servlet或者Struts框架的Acti

8、on采用模板方法設計模式進行設計,且要求所有的請求只能指向Servlet或者Struts框架的Action自定義標簽在所有的JSP頁面中都要加入自動登錄的標簽,且要求客戶端的所有請求都只能指向JSP頁面。過濾器(Filter)可以對指向各種資源的訪問請求進行攔截,并附加實現(xiàn)自動登錄功能,不要求對現(xiàn)有的Servlet和JSP進行任何改造,對以后編寫的任何Servlet和JSP也沒有特殊要求。過濾器(Filter)應該成為自動登錄功能的首選編程技術。北京傳智播客教育 自動登錄處理流程的數(shù)據(jù)狀態(tài)與協(xié)作圖北京傳智播客教育 自動登錄處理流程的活動圖北京傳智播客教育 增加自動登錄的安全性保存在瀏覽器所在客

9、戶機上的信息必須盡可能的安全,即使被人竊取,也無法識別其中的信息。Cookie值采用如下算法來生成:username + : + expiryTime + : + Md5Hex(username + : + expiryTime + : + password + : + key)生成和解析Cookie值的算法是配對的,最好是放在同一個類中編寫。北京傳智播客教育 Tip3:單點登錄單點登錄的概念與功能單點登錄的兩種解決方案將自動登錄程序擴展成同域內(nèi)的單點登錄系統(tǒng)CAS服務器的工作原理使用CAS服務器配置單點登錄系統(tǒng)北京傳智播客教育 單點登錄的概念與解決方案單點登錄的概念與功能單點登錄的英文簡稱為

10、SSO(single sign on),單點登錄功能使得用戶只要登錄了其中一個系統(tǒng),就可以訪問其他相關系統(tǒng),而不用進行身份驗證登錄。即用戶只要登陸系統(tǒng)一次,該用戶的身份信息就可以被系統(tǒng)中的多個主機上的應用所識別,不需要在訪問每個應用時再分別進行登陸。單點登錄的兩種解決方案在某個域范圍內(nèi)的全局Cookie例如:Set-Cookie2: user=it315; Version=1; Path=/; 通過專用的代理服務器進行登錄,如CAS和OpenSSO。北京傳智播客教育 將自動登錄程序擴展成單點登錄系統(tǒng)建立兩個具有相同域名的主機名和配置相應的虛擬主機。設置自動登錄程序的Cookie的domain屬

11、性:Set-Cookie2:name=xxxxx; path=/; 將Web應用發(fā)布到兩個虛擬主機下,進行測試訪問。注銷Cookie時,也必須按照生成該Cookie時的情況設置domain屬性,瀏覽器才會真正注銷這個Cookie。問題:一個站點注銷或重新登陸后,另外一個站點的信息不能隨之改變。browserServer1Server2Server3 北京傳智播客教育 通過代理服務器實現(xiàn)的SSOSSO ServerWeb Server1Browser HTTPSHTTPSAuthenticationFilterTicketValidationFilter第(8)和第(9)步操作全部由其完成。We

12、b Server2北京傳智播客教育 配置簡單的CAS服務器配置三個站點 、 、 將下載的casclient demo分別發(fā)布成 、 的根目錄,將cas server中的webapp.war包發(fā)布成 的根目錄。需要將cas-client-3.1.10-release.zip中的cas-client-core-3.1.10.jar和commons-logging-1.1.jar加到casclient demo的lib目錄中。修改casclient demo的web.xml文件,根據(jù)當前的配置環(huán)境設置那些Filter的參數(shù)屬性。注意:cas客戶端請求cas服務器驗證票據(jù)的地址暫時不要采用https協(xié)

13、議。測試訪問,先看兩個站點都需要登錄,在第一個站點登錄后,再次訪問第二個站點,不用登錄了。剛開始CAS沒有起作用,因為cas 服務器校驗用戶名后送出的TGC(Ticket Granting Cookie)標記了secure,所以,必須用https協(xié)議訪問cas服務器時,才能回送cookie,這就要求casServerLoginUrl的地址必須是https協(xié)議。這個TGC的作用:當瀏覽器訪問第二個站點時,第二個站點要求瀏覽器去找CAS服務器,此時瀏覽器就會回送先前收到的TGC,CAS服務器收到這個TGC后就不需要瀏覽器再登陸了。只要修改spring-configurationticketGran

14、tingTicketCookieGenerator.xml文件,將其中p:cookieSecure=true屬性值改為false,這樣casServerLoginUrl就可以不用https協(xié)議了。北京傳智播客教育 Single Sign out 即可完成CAS Server的注銷,但這只是注銷了CAS Server,原來登錄進的站點信息存入到了Cookie,所以,仍然可以用。參看cas client幫助文檔,其中有一個sing sing out的說明,配置一個Filter和一個Listener就可以了,建議讀下其中的源碼。在demo webapp中已經(jīng)配置好了上面的filter和Listene

15、r,只是暫時注釋掉了。打開注釋,注銷掉cas服務器,可以看到Cas Client也隨之注銷了??碈as服務器幫助文檔中的關于single sign out部分,進而知道要看ArgumentExtractor類的代碼,再看到具體注銷通知由org.jasig.cas.authentication.principal.AbstractWebApplicationService的logOutOfService方法生成發(fā)送,在eclipse中按Ctrl+H搜索但是誰來調(diào)用的這個方法,發(fā)現(xiàn)是TicketGrantingTicketImpl的expire方法。北京傳智播客教育 必須了解的Assertion類

16、查看Assertion及AssertionImpl的源碼,了解其中的方法。查看AttributePrincipal及AttributePrincipalImpl的源碼,了解其中的方法。通過eclipse查找AssertionImpl類的構造方法被引用的地方,從而了解Assertion對象是如何被組裝的。CAS服務器驗證完票據(jù)后,給CAS客戶端返回的用戶信息就是由 CredentialsToPrincipalResolver轉(zhuǎn)換后的結(jié)果。如果自己要定制客戶端獲得的Assertion對象的AttributePrincipal屬性對象返回的信息,例如,修改principalId的內(nèi)容和在attrit

17、ues集合中添加條目,這需要對服務器端的deployerConfigContext.xml文件進行配置,使用自己寫的CredentialsToPrincipalResolver Bean。北京傳智播客教育 利用CAS整合多個系統(tǒng)的問題與方案問題與需求:A和B兩個完全獨立的系統(tǒng)分別有各自完全獨立的用戶管理,現(xiàn)在需要將這兩個系統(tǒng)整合,不管是A系統(tǒng)中的帳戶,還是B系統(tǒng)中的帳戶,都只需要登錄一次,就可以訪問A和B系統(tǒng)的服務了。如果一個人同時具有A和B系統(tǒng)的帳戶,當他以A系統(tǒng)的帳戶登錄后,訪問B系統(tǒng)時,B系統(tǒng)自動將它轉(zhuǎn)換成本系統(tǒng)帳戶再進行訪問操作,反之亦然。A和B系統(tǒng)整合后,不再單獨提供新用戶注冊功能。

18、新用戶注冊統(tǒng)一到中央認證管理系統(tǒng)中,新注冊的用戶可以同時訪問A和B系統(tǒng),例如,sina和sohu等網(wǎng)站的通行證注冊就是這么回事。解決步驟:利用CAS提供統(tǒng)一的登錄入口,還需要定制登錄界面,讓用戶可以選擇使用那個系統(tǒng)的帳戶進行登錄。由于登錄界面發(fā)生改變,請求參數(shù)增加了賬號所在的系統(tǒng)名稱,所以,登錄憑據(jù)也不能繼續(xù)使用UsernamePasswordCredentials,而是要自定義一個包含了系統(tǒng)名稱的Credentials,并進行配置讓CAS服務器啟用這個自定義的Credentials。編寫對用戶Credenticals憑據(jù)進行驗證的AuthenticationHandler,這就需要在CAS中

19、央數(shù)據(jù)庫增加一個表,記錄各個systemCode和原系統(tǒng)的名稱、數(shù)據(jù)庫地址,數(shù)據(jù)庫接賬號等信息的映射關系,以便AuthenticationHandler能夠連接原來的數(shù)據(jù)庫查詢用戶的賬號信息。編寫自己定義的CredentialsToPrincipalResolver(修改前面講解過的那個的即可),它通過Attribute方式向CAS客戶端傳遞賬號所在的系統(tǒng)和賬號Id。對原來的A系統(tǒng)和B系統(tǒng)進行改造,讓系統(tǒng)可以跟蹤是哪個系統(tǒng)的哪個用戶進行的操作。實現(xiàn)A和B系統(tǒng)帳戶自動關聯(lián)的功能。實現(xiàn)系統(tǒng)整合后的通行證帳戶功能。北京傳智播客教育 CAS服務器在Portal系統(tǒng)中的代理應用Cas20ProxyRec

20、eivingTicketValidationFilter可以用于代理,這時候要設置proxyCallbackUrl和proxyReceptorUrl參數(shù)。proxyReceptorUrl必須滿足requestUri.endsWith(),所以,不能包含webapp path部分。 proxyCallbackUrl為proxyReceptorUrl的絕對地址,CAS服務將調(diào)用這個地址,攔截此調(diào)用的Filter-Mapping應排在其他Filter之前。Cas20ProxyReceivingTicketValidationFilter還可以用于被代理的應用,這時候要設置acceptAnyProxy

21、參數(shù),校驗器就不是Cas20ServiceTicketValidator,而是Cas20ProxyTicketValidator,校驗地址的后綴就不是serviceValidate,而是“proxyValidate”。代理程序經(jīng)上面第一個的Filter攔截后,得到的Assertion中已經(jīng)有了PGT,它接著調(diào)用assertion.getPrincipal.getProxyTicketFor(目標服務的路徑)獲得要調(diào)用的目標服務的一個PT,再將這個PT附加在要訪問的目標服務路徑后對目標進行訪問;目標服務程序經(jīng)上面第二個Filter攔截并驗證ticket后也將得到一個Assertion。Brows

22、erSSO ServerWeb Server2Web Server1(Portal)(Proxy)Web Server3北京傳智播客教育 Tip4:為Tomcat配置Https協(xié)議功能一些基本的安全知識Keytool工具的使用SSL/TLS的工作原理Tomcat的體系結(jié)構北京傳智播客教育 一些基本的安全知識數(shù)字摘要與MD5/SHA算法作用:數(shù)據(jù)的完整性校驗對稱加密與非對稱加密對稱加密速度快,但加密和解密的鑰匙必須相同,只有通信雙方才能知道鑰匙非對稱加密速度慢,加密和解密的鑰匙不相同,某一個人持有私鑰,任何人都可以知道公鑰問題:想讓任何陌生人都可以與你進行加密數(shù)據(jù)的交換,且加密速度要快,如何實現(xiàn)

23、呢?數(shù)字簽名功能:必須能夠驗證內(nèi)容沒有修改,必須能夠驗證內(nèi)容確實是被發(fā)送方簽署方案:發(fā)送方的公鑰可以驗證發(fā)送方簽名的真實性,數(shù)字摘要可以驗證內(nèi)容沒有修改數(shù)字證書問題:如何確認對方提供的公鑰的真實性。方案:每個人或機構的公鑰和私鑰由一些權威的機構產(chǎn)生!北京傳智播客教育 數(shù)字摘要的基本應用:數(shù)據(jù)的完整性校驗北京傳智播客教育 Keytool工具的使用KeyStore的介紹存儲多個私鑰和其附帶的數(shù)字證書存儲信任的第三方數(shù)字證書KeyStore中的每一個私鑰和信任的第三方數(shù)字證書用一個alias進行標識Keytool的應用產(chǎn)生私鑰與導入第三方證書導出證書與生成CSR(Certificate Signing Request)文件 修改KeyStore與其中存儲項的密碼打印KeyStore與其中的存儲項信息刪除KeyStore中的存儲項北京傳智播客教育 SSL/TLS的工作原理基本概念SSL(Secure Socket Layer)是netscape公司設計的主要用于web的安全傳輸協(xié)議。這種協(xié)議在WEB上獲得了廣泛的應用。IETF( )將SSL作了標準化,即RFC2246,并將其稱為TLS(Transport Layer Security),從技術上講,TLS1.0

溫馨提示

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

評論

0/150

提交評論