




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
SJTUCrushingBlow——CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記Solomonleo8/15/2010Solomonleo2010年8月15日,七夕前一日。憂來其如何?凄愴摧心肝。SJTU
目錄Contents目錄 11單點(diǎn)登錄 22CAS 32.1JA-SIG〔CAS〕的設(shè)計愿景 32.2CAS1.0效勞架構(gòu)實(shí)現(xiàn) 32.3CAS效勞的具體實(shí)現(xiàn) 42.4代理認(rèn)證ProxyAuthentication 62.5CAS2.0代理認(rèn)證流程 62.6CAS2.0憑證 73LDAP 84CAS整合LDAP配置過程 94.1說明 94.1LDAP安裝(A) 94.2配置效勞器(A) 104.3配置客戶端〔B,業(yè)務(wù)效勞器〕 154.4關(guān)于CASTestClient和cas的說明 165參考目錄 19
1單點(diǎn)登錄什么是SSO〔SingleSignOn〕單點(diǎn)登錄?所謂單點(diǎn)登錄是指基于用戶/會話認(rèn)證的一個過程,用戶只需一次性提供憑證〔僅一次登錄〕,就可以訪問多個應(yīng)用。目前單點(diǎn)登錄主要基于Web的多種應(yīng)用程序,即通過瀏覽器實(shí)現(xiàn)對多個B/S架構(gòu)應(yīng)用的統(tǒng)一賬戶認(rèn)證。
2CAS2.1JA-SIG〔CAS〕的設(shè)計愿景CAS〔CentralAuthenticationService–中心認(rèn)證效勞〕的目的就是使分布在一個企業(yè)內(nèi)部各個異構(gòu)系統(tǒng)的認(rèn)證工作集中在一起,通過一個公用的認(rèn)證系統(tǒng)統(tǒng)一管理和驗證用戶的身份。在CAS上認(rèn)證的用戶將獲得CAS頒發(fā)的一個證書,使用這個證書,用戶可以在成認(rèn)CAS證書的各個系統(tǒng)上自由穿梭訪問,不需要再次的登錄認(rèn)證。打個比方:對于參加歐盟的國家而言,在他們國家中的公民可以憑借著自己的身份證,在整個歐洲旅行,不用簽證。對于企業(yè)內(nèi)部系統(tǒng)而言,CAS就是這個頒發(fā)歐盟認(rèn)證的系統(tǒng),其它系統(tǒng)都是參加歐盟的國家,它們要共同遵守和成認(rèn)CAS的認(rèn)證規(guī)那么。因此CAS的設(shè)計愿景就是:1。實(shí)現(xiàn)一個易用的、能跨不同Web應(yīng)用的單點(diǎn)登錄認(rèn)證中心;2。實(shí)現(xiàn)統(tǒng)一的用戶身份和密鑰管理,減少多套密碼系統(tǒng)造成的管理本錢和平安漏洞;3。降低認(rèn)證模塊在IT系統(tǒng)設(shè)計中的耦合度,提供更好的SOA設(shè)計和更彈性的平安策略2.2CAS1.0效勞架構(gòu)實(shí)現(xiàn)我們以A公司的員工日志管理系統(tǒng)為例,如下列圖:
圖2.1傳統(tǒng)的用戶認(rèn)證流程使用CAS后的用戶認(rèn)證流程:圖2.2使用CAS后的用戶認(rèn)證流程示意圖中,CAS相關(guān)局部被標(biāo)示為藍(lán)色。在這個流程中,員工solomon向日志系統(tǒng)請求進(jìn)入主頁面,他的瀏覽器發(fā)出的請求被嵌入在日志系統(tǒng)中的CAS客戶端〔過濾器〕攔截,并判斷該請求是否帶有CAS的證書;如果沒有,員工solomon將被定位到CAS的統(tǒng)一用戶登錄界面進(jìn)行登錄認(rèn)證,成功后,CAS將自動引導(dǎo)AT返回日志系統(tǒng)的主頁面。
2.3CAS效勞的具體實(shí)現(xiàn)
環(huán)境假設(shè):用戶User要訪問業(yè)務(wù)系統(tǒng)Woolong;Woolong系統(tǒng)部署在WoolongServer上;CAS的系統(tǒng)搭建在效勞器CASserver上。圖2.3CAS效勞的具體實(shí)現(xiàn)圖例說明:
Step1:用戶第一次訪問Woolong系統(tǒng)主頁://Woolong/index.jsp;部署在Woolong系統(tǒng)上的CASFilter發(fā)現(xiàn)用戶尚未登錄,將用戶重定向的CAS登錄界面: s://CASserver/cas/servlet/login?service=://Woolong/index.jsp,同時在重定向的URL上用service參數(shù)將用戶的目標(biāo)地址傳給CAS效勞器。
Step2:用戶在CAS的登錄頁上輸入用戶名密碼登錄,CAS效勞器認(rèn)證通過后,生成一個ticket,并帶在目標(biāo)地址的尾部返回客戶端的瀏覽器redirect:://Woolong/index.jsp?ticket=casticket.
Step3:客戶端瀏覽器獲得CAS效勞器的認(rèn)證應(yīng)答,取得憑證ticket后,使用重定向的鏈接://Woolong/index.jsp?ticket=casticket訪問Woolong效勞
Step4:WoolongServer上的CASFilter再次過濾訪問請求,并獲得ticket憑證。Filter將使用該憑證通過URLs://CASserver/cas/servlet/validate?service=://Woolong/index.jsp&ticket=casticket向CAS認(rèn)證中心確認(rèn)對應(yīng)的效勞請求和憑證是否有效。根據(jù)CAS效勞器返回的結(jié)果,如果憑證有效,那么CASFilter允許用戶進(jìn)入://Woolong/index.jsp所指向的頁面;否那么,再次重定向到s://CASserver/cas/servlet/login?service=://Woolong/index.jsp上要求用戶進(jìn)行認(rèn)證。
2.4代理認(rèn)證ProxyAuthentication
假設(shè)有一下這樣的應(yīng)用場景:用戶solomon早晨來到公司,他的第一件事就是進(jìn)入泓浩公司的WooLong系統(tǒng)瀏覽一天的新咨詢,如股票信息、天氣情況、業(yè)界新聞。他通過CAS的身份認(rèn)證登錄了門戶系統(tǒng),看到了他訂制的信息。之后,他要訪問WooLong中的郵件信息,看看有沒有新的郵件。這時候WooLong系統(tǒng)必須訪問他的IMAP效勞器,這需要他的私人密碼。我們知道WooLong是通過CAS對solomon進(jìn)行認(rèn)證的,因此WooLong上沒有solomon的個人密碼信息。這時,我們發(fā)現(xiàn),WooLong需要代表solomon的身份向IMAP效勞器提交身份認(rèn)證,而這正是ProxyAuthentication的作用。2.5CAS2.0代理認(rèn)證流程
以下的流程圖模擬上述的用戶solomon通過WooLong向他的IMAP郵件效勞器請求電子郵件的認(rèn)證過程。在該過程中,充當(dāng)Service和Proxy兩個角色的WooLong使用CASFilter對訪問其自身的用戶進(jìn)行CAS認(rèn)證;同時WooLong要使用ProxyTicketReceptorservlet接收來自CASserver的PGT信息,并使用ProxyTicketValidator對象向CAS獲取訪問IMAP效勞器的ProxyTicket憑證;最終從IMAP效勞器上獲取solomon用戶的mail信息。同樣的,這里的IMAP效勞器也要接受并認(rèn)可CAS對其用戶的認(rèn)證管理,同時它自己也成為二級Proxy,在有需要的情況下,一樣可以向它的back-endService發(fā)起ProxyAuthentication代理認(rèn)證請求。圖2.4代理認(rèn)證流程 其中藍(lán)色線表示或S的請求;紅色線表示應(yīng)答;黑色線表示來自CASserver端的回調(diào)操作。
2.6CAS2.0憑證
在CAS系統(tǒng)中,各方通過憑證(Ticket)對用戶身份進(jìn)行驗證。CAS系統(tǒng)中設(shè)計了5種憑證:TGC、ST、PGT、PGTIOU、PT。TGC(Ticket-GrantingCookie):存放用戶身份認(rèn)證憑證的cookie,在瀏覽器和CAS間通訊時使用,并且只能基于平安通道傳輸,是CAS用來明確用戶身份的憑證;ST(ServiceTicket):效勞的惟一標(biāo)識碼。由CASServer發(fā)出,通過客戶端瀏覽器到達(dá)業(yè)務(wù)效勞器端。一個特定的效勞只能有一個惟一的ST;PGT(Proxy-Grantingticket):由CASServer頒發(fā)給擁有ST憑證的效勞。PGT綁定一個用戶的特定效勞,使其擁有向CASServer申請,獲得PT的能力;PGTIOU(Proxy-GrantingTicketIOU):作用是將通過憑證校驗時的應(yīng)答信息由CASServer返回給CASClient,同時,與該GTIOU對應(yīng)的PGT將通過回調(diào)鏈接傳給Web應(yīng)用。Web應(yīng)用負(fù)責(zé)維護(hù)PGTIOU與PGT之間映射關(guān)系的內(nèi)容表;PT(ProxyTicket):是應(yīng)用程序代理用戶身份對目標(biāo)程序進(jìn)行訪問的憑證。PT保存有代理及代理們進(jìn)行逐級訪問過程的信息。
3LDAPLDAP是輕量目錄訪問協(xié)議,英文全稱是LightweightDirectoryAccessProtocol,一般都簡稱為LDAP。它基于X.500標(biāo)準(zhǔn),并可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。簡單說來,LDAP是一個得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。 LDAP與關(guān)系數(shù)據(jù)庫相似,是具有描述性的基于屬性的記錄集合,但它的數(shù)據(jù)類型主要是字符型,為了檢索的需要添加了BIN〔二進(jìn)制數(shù)據(jù)〕、CIS〔忽略大小寫〕、CES〔大小寫敏感〕、TEL〔型〕等語法〔Syntax〕,而不是關(guān)系數(shù)據(jù)庫提供的整數(shù)、浮點(diǎn)數(shù)、日期、貨幣等類型,同樣也不提供象關(guān)系數(shù)據(jù)庫中普遍包含的大量的函數(shù),它主要面向數(shù)據(jù)的查詢效勞〔查詢和修改操作比一般是大于10:1〕,不提供事務(wù)的回滾〔rollback〕機(jī)制,它的數(shù)據(jù)修改使用簡單的鎖定機(jī)制實(shí)現(xiàn)All-or-Nothing,它的目標(biāo)是快速響應(yīng)和大容量查詢并且提供多目錄效勞器的信息復(fù)制功能。 LDAP最大的優(yōu)勢是:可以在任何計算機(jī)平臺上,用很容易獲得的而且數(shù)目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定制應(yīng)用程序為它加上LDAP的支持。
4CAS整合LDAP配置過程4.1說明ACAS驗證效勞器ip地址:BCAS客戶端,WooLong業(yè)務(wù)系統(tǒng)ip地址:〔不再對圖進(jìn)行編號,太累〕4.1LDAP安裝(A)如果不使用LDAP進(jìn)行賬號存儲,此過程可跳過。 安裝LDAP數(shù)據(jù)庫: 數(shù)據(jù)庫效勞器 數(shù)據(jù)庫客戶端 開啟效勞ApacheDirectory 導(dǎo)入OnlineStore_backup.ldif 4.2配置效勞器(A) 配置host〔c盤下〕文件中的域名: 192.168.1.30casserver 安裝tomcat 開啟SSL 使用命令提示符進(jìn)入到Tomcat安裝目錄:
1.生成效勞端密匙,執(zhí)行以下命令
keytool-genkey-alias別名keyalgRSA-keypasschangeit-storepasschangeit
-keystoreserver.keystore
例:keytool-genkey-aliascasserver-keyalgRSA-keypasschangeit-storepasschangeit-keystoreserver.keystore
運(yùn)行后出現(xiàn)提示信息:
您的名字與姓氏是什么?
[Unknown]:casserver //這里一定要填寫正確的域名
您的組織單位名稱是什么?
[Unknown]:test
您的組織名稱是什么?
[Unknown]:test
您所在的城市或區(qū)域名稱是什么?
[Unknown]:beijing
您所在的州或省份名稱是什么?
[Unknown]:beijing
該單位的兩字母國家代碼是什么
[Unknown]:cn
CN=casserver,OU=test,O=test,L=beijing,ST=beijing,C=cn正確嗎?Y
完成后會在Tomcat目錄生成一個名為server.keystore的文件
2.生成效勞端證書,執(zhí)行以下命令
keytool-export-aliascasserver-storepasschangeit-fileserver.cer
-keystoreserver.keystore
命令執(zhí)行后生成一個server.cer的證書文件
3.導(dǎo)入證書文件到cacerts文件中,執(zhí)行以下命令
keytool-import-trustcacerts-aliasserver-fileserver.cer-keystorecacerts-storepasschangeit
4.拷貝cacerts
把cacerts文件,拷貝到$java_home/jre/lib/security目錄〔假定為D〕下
。備注:如果是以MyEclipse開啟Tomcat效勞,這里D那么為MyEclipse的TomcatJDK目錄下jre/lib/security。否那么請以Tomcat的JVM配置為準(zhǔn)。例如,這里如果以Tomcat的JVM目錄為準(zhǔn),那么拷貝的目錄為:E:\ProgramFiles\Java\jre1.6.0\lib\security〔這里的MyEclipse中的TomcatJVM設(shè)置與Tomcat本身的JVM設(shè)置時一致的,但是默認(rèn)情況是不一致的,請留意。〕
4.修改Tomcat的配置文件server.xml把以下補(bǔ)注釋的內(nèi)容翻開并添加紅色局部
<Connectorport="8443"protocol="/1.1"SSLEnabled="true"
keystoreFile="/server.keystore"keystorePass="changeit"
maxThreads="150"scheme="s"secure="true"
clientAuth="false"sslProtocol="TLS"/> 導(dǎo)入cas 拷貝cas文件夾到tomcatwebapps(A)目錄下,cas是驗證效勞器端測試驗證程序。 檢測SSL 翻開瀏覽器,輸入:s://localhost:8443/cas4.3配置客戶端〔B,業(yè)務(wù)效勞器〕 配置host〔c盤下〕文件中的域名 192.168.1.30casserver192.168.1.46solomonpc 安裝tomcat 連接效勞器 >javacInstallCert.java >javaInstallCert.javaldapserver:8443 然后輸入1,確認(rèn)即可生成jssecacerts文件 copycacerts jssecacerts(InstallCert生成的)改名為cacerts copy到$java_home/jre/lib/security目錄下〔這里目標(biāo)目錄原那么和cas驗證效勞器端相同〕 導(dǎo)入CASTestClient 拷貝CASTestClient文件夾到tomcatwebapps(B)目錄下 檢測單點(diǎn)登錄 翻開瀏覽器,輸入:://localhost:8080/CASTestClient,此時,客戶端重定向到cas驗證效勞器端登錄界面,一旦完成驗證,那么重定向到WooLong業(yè)務(wù)系統(tǒng)主頁。不關(guān)閉瀏覽器,翻開新標(biāo)簽輸入://localhost:8080/CASTestClient,那么無需驗證,直接到達(dá)WooLong業(yè)務(wù)系統(tǒng)主頁。4.4關(guān)于CASTestClient和cas的說明cas是驗證效勞器的最簡單的驗證效勞,用戶名和密碼一樣時即可通過驗證。CASTestClient是一個簡單的web應(yīng)用,主要需要對其web.xml參加CASFilter。<filter><filter-name>CASFilter</filter-name><filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class><init-param><param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name><param-value>s://casserver:8443/cas/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>s://casserver:8443/cas/serviceValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>localhost:8080</param-value></init-param></filter><filter-mapping><filter-name>CASFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>如果想用ldap的數(shù)據(jù)進(jìn)行賬號驗證,那么需要在驗證效勞器的cas應(yīng)用中加上一定的修改。修改步驟如下:1.
添加“〞可以在spring的官方網(wǎng)站上找到,添加“
〞可以在cas官網(wǎng)下載的目錄cas-server-3.3.2\modules下找到。〔此處兩個jar包在附帶的文件下均已存在〕2.
翻開目錄Tomcat6\webapps\cas\WEB-INF
找到配置文件“deployerConfigContext.xml〞,我們要將“SimpleTestUsernamePasswordAuthenticationHandler〞替換成“FastBindLdapAuthenticationHandler〞,分兩步完成:a)
添加一個contextSource <beanid="contextSource"class="org.springframework.ldap.core.support.LdapContextSo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目融資合同協(xié)議
- 購房補(bǔ)充協(xié)議合同歸誰
- 煙店合同協(xié)議
- 綠化工程合同協(xié)議書
- 贈品領(lǐng)用合同協(xié)議
- 稅點(diǎn)協(xié)議合同
- 施工合同初步協(xié)議
- 用戶協(xié)議合同
- 共管協(xié)議共管合同
- 供應(yīng)合同供油協(xié)議
- 倫理學(xué)考試題庫及答案
- GB/T 32963-2016鋅鋁合金鍍層鋼絲纜索
- 《路德維希 費(fèi)爾巴哈和德國古典哲學(xué)的終結(jié)》
- 北醫(yī)安全法規(guī)考試題
- 中國地理的區(qū)域差異
- 安全生產(chǎn)教育培訓(xùn)制度管理辦法
- 線描畫基本功教學(xué)課件
- SJG 114-2022 建筑信息模型數(shù)據(jù)存儲標(biāo)準(zhǔn)
- 抽油井檢泵作業(yè)課件
- 2022年06月2022年廣東肇慶廣寧縣司法局招考聘用政府雇員名師點(diǎn)撥卷V答案詳解版(3套版)
- 《HSK標(biāo)準(zhǔn)教程3》第5課課件
評論
0/150
提交評論