版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
SJTUCrushingBlow——CAS整合LDAP實現(xiàn)單點登錄學習筆記Solomonleo8/15/2010Solomonleo2010年8月15日,七夕前一日。憂來其如何?凄愴摧心肝。SJTU
目錄Contents目錄 11單點登錄 22CAS 32.1JA-SIG〔CAS〕的設計愿景 32.2CAS1.0效勞架構(gòu)實現(xiàn) 32.3CAS效勞的具體實現(xiàn) 42.4代理認證ProxyAuthentication 62.5CAS2.0代理認證流程 62.6CAS2.0憑證 73LDAP 84CAS整合LDAP配置過程 94.1說明 94.1LDAP安裝(A) 94.2配置效勞器(A) 104.3配置客戶端〔B,業(yè)務效勞器〕 154.4關(guān)于CASTestClient和cas的說明 165參考目錄 19
1單點登錄什么是SSO〔SingleSignOn〕單點登錄?所謂單點登錄是指基于用戶/會話認證的一個過程,用戶只需一次性提供憑證〔僅一次登錄〕,就可以訪問多個應用。目前單點登錄主要基于Web的多種應用程序,即通過瀏覽器實現(xiàn)對多個B/S架構(gòu)應用的統(tǒng)一賬戶認證。
2CAS2.1JA-SIG〔CAS〕的設計愿景CAS〔CentralAuthenticationService–中心認證效勞〕的目的就是使分布在一個企業(yè)內(nèi)部各個異構(gòu)系統(tǒng)的認證工作集中在一起,通過一個公用的認證系統(tǒng)統(tǒng)一管理和驗證用戶的身份。在CAS上認證的用戶將獲得CAS頒發(fā)的一個證書,使用這個證書,用戶可以在成認CAS證書的各個系統(tǒng)上自由穿梭訪問,不需要再次的登錄認證。打個比方:對于參加歐盟的國家而言,在他們國家中的公民可以憑借著自己的身份證,在整個歐洲旅行,不用簽證。對于企業(yè)內(nèi)部系統(tǒng)而言,CAS就是這個頒發(fā)歐盟認證的系統(tǒng),其它系統(tǒng)都是參加歐盟的國家,它們要共同遵守和成認CAS的認證規(guī)那么。因此CAS的設計愿景就是:1。實現(xiàn)一個易用的、能跨不同Web應用的單點登錄認證中心;2。實現(xiàn)統(tǒng)一的用戶身份和密鑰管理,減少多套密碼系統(tǒng)造成的管理本錢和平安漏洞;3。降低認證模塊在IT系統(tǒng)設計中的耦合度,提供更好的SOA設計和更彈性的平安策略2.2CAS1.0效勞架構(gòu)實現(xiàn)我們以A公司的員工日志管理系統(tǒng)為例,如下列圖:
圖2.1傳統(tǒng)的用戶認證流程使用CAS后的用戶認證流程:圖2.2使用CAS后的用戶認證流程示意圖中,CAS相關(guān)局部被標示為藍色。在這個流程中,員工solomon向日志系統(tǒng)請求進入主頁面,他的瀏覽器發(fā)出的請求被嵌入在日志系統(tǒng)中的CAS客戶端〔過濾器〕攔截,并判斷該請求是否帶有CAS的證書;如果沒有,員工solomon將被定位到CAS的統(tǒng)一用戶登錄界面進行登錄認證,成功后,CAS將自動引導AT返回日志系統(tǒng)的主頁面。
2.3CAS效勞的具體實現(xiàn)
環(huán)境假設:用戶User要訪問業(yè)務系統(tǒng)Woolong;Woolong系統(tǒng)部署在WoolongServer上;CAS的系統(tǒng)搭建在效勞器CASserver上。圖2.3CAS效勞的具體實現(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ù)將用戶的目標地址傳給CAS效勞器。
Step2:用戶在CAS的登錄頁上輸入用戶名密碼登錄,CAS效勞器認證通過后,生成一個ticket,并帶在目標地址的尾部返回客戶端的瀏覽器redirect:://Woolong/index.jsp?ticket=casticket.
Step3:客戶端瀏覽器獲得CAS效勞器的認證應答,取得憑證ticket后,使用重定向的鏈接://Woolong/index.jsp?ticket=casticket訪問Woolong效勞
Step4:WoolongServer上的CASFilter再次過濾訪問請求,并獲得ticket憑證。Filter將使用該憑證通過URLs://CASserver/cas/servlet/validate?service=://Woolong/index.jsp&ticket=casticket向CAS認證中心確認對應的效勞請求和憑證是否有效。根據(jù)CAS效勞器返回的結(jié)果,如果憑證有效,那么CASFilter允許用戶進入://Woolong/index.jsp所指向的頁面;否那么,再次重定向到s://CASserver/cas/servlet/login?service=://Woolong/index.jsp上要求用戶進行認證。
2.4代理認證ProxyAuthentication
假設有一下這樣的應用場景:用戶solomon早晨來到公司,他的第一件事就是進入泓浩公司的WooLong系統(tǒng)瀏覽一天的新咨詢,如股票信息、天氣情況、業(yè)界新聞。他通過CAS的身份認證登錄了門戶系統(tǒng),看到了他訂制的信息。之后,他要訪問WooLong中的郵件信息,看看有沒有新的郵件。這時候WooLong系統(tǒng)必須訪問他的IMAP效勞器,這需要他的私人密碼。我們知道WooLong是通過CAS對solomon進行認證的,因此WooLong上沒有solomon的個人密碼信息。這時,我們發(fā)現(xiàn),WooLong需要代表solomon的身份向IMAP效勞器提交身份認證,而這正是ProxyAuthentication的作用。2.5CAS2.0代理認證流程
以下的流程圖模擬上述的用戶solomon通過WooLong向他的IMAP郵件效勞器請求電子郵件的認證過程。在該過程中,充當Service和Proxy兩個角色的WooLong使用CASFilter對訪問其自身的用戶進行CAS認證;同時WooLong要使用ProxyTicketReceptorservlet接收來自CASserver的PGT信息,并使用ProxyTicketValidator對象向CAS獲取訪問IMAP效勞器的ProxyTicket憑證;最終從IMAP效勞器上獲取solomon用戶的mail信息。同樣的,這里的IMAP效勞器也要接受并認可CAS對其用戶的認證管理,同時它自己也成為二級Proxy,在有需要的情況下,一樣可以向它的back-endService發(fā)起ProxyAuthentication代理認證請求。圖2.4代理認證流程 其中藍色線表示或S的請求;紅色線表示應答;黑色線表示來自CASserver端的回調(diào)操作。
2.6CAS2.0憑證
在CAS系統(tǒng)中,各方通過憑證(Ticket)對用戶身份進行驗證。CAS系統(tǒng)中設計了5種憑證:TGC、ST、PGT、PGTIOU、PT。TGC(Ticket-GrantingCookie):存放用戶身份認證憑證的cookie,在瀏覽器和CAS間通訊時使用,并且只能基于平安通道傳輸,是CAS用來明確用戶身份的憑證;ST(ServiceTicket):效勞的惟一標識碼。由CASServer發(fā)出,通過客戶端瀏覽器到達業(yè)務效勞器端。一個特定的效勞只能有一個惟一的ST;PGT(Proxy-Grantingticket):由CASServer頒發(fā)給擁有ST憑證的效勞。PGT綁定一個用戶的特定效勞,使其擁有向CASServer申請,獲得PT的能力;PGTIOU(Proxy-GrantingTicketIOU):作用是將通過憑證校驗時的應答信息由CASServer返回給CASClient,同時,與該GTIOU對應的PGT將通過回調(diào)鏈接傳給Web應用。Web應用負責維護PGTIOU與PGT之間映射關(guān)系的內(nèi)容表;PT(ProxyTicket):是應用程序代理用戶身份對目標程序進行訪問的憑證。PT保存有代理及代理們進行逐級訪問過程的信息。
3LDAPLDAP是輕量目錄訪問協(xié)議,英文全稱是LightweightDirectoryAccessProtocol,一般都簡稱為LDAP。它基于X.500標準,并可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。簡單說來,LDAP是一個得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。 LDAP與關(guān)系數(shù)據(jù)庫相似,是具有描述性的基于屬性的記錄集合,但它的數(shù)據(jù)類型主要是字符型,為了檢索的需要添加了BIN〔二進制數(shù)據(jù)〕、CIS〔忽略大小寫〕、CES〔大小寫敏感〕、TEL〔型〕等語法〔Syntax〕,而不是關(guān)系數(shù)據(jù)庫提供的整數(shù)、浮點數(shù)、日期、貨幣等類型,同樣也不提供象關(guān)系數(shù)據(jù)庫中普遍包含的大量的函數(shù),它主要面向數(shù)據(jù)的查詢效勞〔查詢和修改操作比一般是大于10:1〕,不提供事務的回滾〔rollback〕機制,它的數(shù)據(jù)修改使用簡單的鎖定機制實現(xiàn)All-or-Nothing,它的目標是快速響應和大容量查詢并且提供多目錄效勞器的信息復制功能。 LDAP最大的優(yōu)勢是:可以在任何計算機平臺上,用很容易獲得的而且數(shù)目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定制應用程序為它加上LDAP的支持。
4CAS整合LDAP配置過程4.1說明ACAS驗證效勞器ip地址:BCAS客戶端,WooLong業(yè)務系統(tǒng)ip地址:〔不再對圖進行編號,太累〕4.1LDAP安裝(A)如果不使用LDAP進行賬號存儲,此過程可跳過。 安裝LDAP數(shù)據(jù)庫: 數(shù)據(jù)庫效勞器 數(shù)據(jù)庫客戶端 開啟效勞ApacheDirectory 導入OnlineStore_backup.ldif 4.2配置效勞器(A) 配置host〔c盤下〕文件中的域名: 192.168.1.30casserver 安裝tomcat 開啟SSL 使用命令提示符進入到Tomcat安裝目錄:
1.生成效勞端密匙,執(zhí)行以下命令
keytool-genkey-alias別名keyalgRSA-keypasschangeit-storepasschangeit
-keystoreserver.keystore
例:keytool-genkey-aliascasserver-keyalgRSA-keypasschangeit-storepasschangeit-keystoreserver.keystore
運行后出現(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.導入證書文件到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配置為準。例如,這里如果以Tomcat的JVM目錄為準,那么拷貝的目錄為:E:\ProgramFiles\Java\jre1.6.0\lib\security〔這里的MyEclipse中的TomcatJVM設置與Tomcat本身的JVM設置時一致的,但是默認情況是不一致的,請留意?!?/p>
4.修改Tomcat的配置文件server.xml把以下補注釋的內(nèi)容翻開并添加紅色局部
<Connectorport="8443"protocol="/1.1"SSLEnabled="true"
keystoreFile="/server.keystore"keystorePass="changeit"
maxThreads="150"scheme="s"secure="true"
clientAuth="false"sslProtocol="TLS"/> 導入cas 拷貝cas文件夾到tomcatwebapps(A)目錄下,cas是驗證效勞器端測試驗證程序。 檢測SSL 翻開瀏覽器,輸入:s://localhost:8443/cas4.3配置客戶端〔B,業(yè)務效勞器〕 配置host〔c盤下〕文件中的域名 192.168.1.30casserver192.168.1.46solomonpc 安裝tomcat 連接效勞器 >javacInstallCert.java >javaInstallCert.javaldapserver:8443 然后輸入1,確認即可生成jssecacerts文件 copycacerts jssecacerts(InstallCert生成的)改名為cacerts copy到$java_home/jre/lib/security目錄下〔這里目標目錄原那么和cas驗證效勞器端相同〕 導入CASTestClient 拷貝CASTestClient文件夾到tomcatwebapps(B)目錄下 檢測單點登錄 翻開瀏覽器,輸入:://localhost:8080/CASTestClient,此時,客戶端重定向到cas驗證效勞器端登錄界面,一旦完成驗證,那么重定向到WooLong業(yè)務系統(tǒng)主頁。不關(guān)閉瀏覽器,翻開新標簽輸入://localhost:8080/CASTestClient,那么無需驗證,直接到達WooLong業(yè)務系統(tǒng)主頁。4.4關(guān)于CASTestClient和cas的說明cas是驗證效勞器的最簡單的驗證效勞,用戶名和密碼一樣時即可通過驗證。CASTestClient是一個簡單的web應用,主要需要對其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ù)進行賬號驗證,那么需要在驗證效勞器的cas應用中加上一定的修改。修改步驟如下: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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國扁園珠行業(yè)投資前景及策略咨詢研究報告
- 2024年度新能源行業(yè)人才招聘與研發(fā)合作合同3篇
- 2025至2030年中國刮胡刀行業(yè)投資前景及策略咨詢研究報告
- 洗手液按壓器 課程設計
- 2025年度太空探索設備研發(fā)與采購合同3篇
- 2025年度新型桉樹種植基地投資合作合同范本3篇
- 玉石材料鑒賞課程設計
- 線描畫基本線條課程設計
- 2025版高效能房產(chǎn)置換合作協(xié)議書模板3篇
- 正方形墊片課程設計
- GB/T 42449-2023系統(tǒng)與軟件工程功能規(guī)模測量IFPUG方法
- 酒店裝修工程預算表EXCEL模板(推薦)
- 2023行政執(zhí)法人員考試題庫及答案
- NY 5052-2001無公害食品海水養(yǎng)殖用水水質(zhì)
- 【講座】2020年福建省高職分類考試招生指導講座
- GB 18450-2001民用黑火藥
- 學習會計基礎(chǔ)工作規(guī)范課件
- 民間文學(全套課件)
- 初二期末放假前家長會
- DB41-T 2137-2021公路隧道監(jiān)控量測技術(shù)規(guī)程-(高清現(xiàn)行)
- 雙面埋弧焊螺旋鋼管公稱外公壁厚和每米理論重量
評論
0/150
提交評論