




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SJTUCrushingBlow——CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記Solomonleo8/15/2010Solomonleo2010年8月15日,七夕前一日。憂來(lái)其如何?凄愴摧心肝。SJTU
目錄Contents目錄 11單點(diǎn)登錄 22CAS 32.1JA-SIG〔CAS〕的設(shè)計(jì)愿景 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配置過(guò)程 94.1說(shuō)明 94.1LDAP安裝(A) 94.2配置效勞器(A) 104.3配置客戶(hù)端〔B,業(yè)務(wù)效勞器〕 154.4關(guān)于CASTestClient和cas的說(shuō)明 165參考目錄 19
1單點(diǎn)登錄什么是SSO〔SingleSignOn〕單點(diǎn)登錄?所謂單點(diǎn)登錄是指基于用戶(hù)/會(huì)話認(rèn)證的一個(gè)過(guò)程,用戶(hù)只需一次性提供憑證〔僅一次登錄〕,就可以訪問(wèn)多個(gè)應(yīng)用。目前單點(diǎn)登錄主要基于Web的多種應(yīng)用程序,即通過(guò)瀏覽器實(shí)現(xiàn)對(duì)多個(gè)B/S架構(gòu)應(yīng)用的統(tǒng)一賬戶(hù)認(rèn)證。
2CAS2.1JA-SIG〔CAS〕的設(shè)計(jì)愿景CAS〔CentralAuthenticationService–中心認(rèn)證效勞〕的目的就是使分布在一個(gè)企業(yè)內(nèi)部各個(gè)異構(gòu)系統(tǒng)的認(rèn)證工作集中在一起,通過(guò)一個(gè)公用的認(rèn)證系統(tǒng)統(tǒng)一管理和驗(yàn)證用戶(hù)的身份。在CAS上認(rèn)證的用戶(hù)將獲得CAS頒發(fā)的一個(gè)證書(shū),使用這個(gè)證書(shū),用戶(hù)可以在成認(rèn)CAS證書(shū)的各個(gè)系統(tǒng)上自由穿梭訪問(wèn),不需要再次的登錄認(rèn)證。打個(gè)比方:對(duì)于參加歐盟的國(guó)家而言,在他們國(guó)家中的公民可以憑借著自己的身份證,在整個(gè)歐洲旅行,不用簽證。對(duì)于企業(yè)內(nèi)部系統(tǒng)而言,CAS就是這個(gè)頒發(fā)歐盟認(rèn)證的系統(tǒng),其它系統(tǒng)都是參加歐盟的國(guó)家,它們要共同遵守和成認(rèn)CAS的認(rèn)證規(guī)那么。因此CAS的設(shè)計(jì)愿景就是:1。實(shí)現(xiàn)一個(gè)易用的、能跨不同Web應(yīng)用的單點(diǎn)登錄認(rèn)證中心;2。實(shí)現(xiàn)統(tǒng)一的用戶(hù)身份和密鑰管理,減少多套密碼系統(tǒng)造成的管理本錢(qián)和平安漏洞;3。降低認(rèn)證模塊在IT系統(tǒng)設(shè)計(jì)中的耦合度,提供更好的SOA設(shè)計(jì)和更彈性的平安策略2.2CAS1.0效勞架構(gòu)實(shí)現(xiàn)我們以A公司的員工日志管理系統(tǒng)為例,如下列圖:
圖2.1傳統(tǒng)的用戶(hù)認(rèn)證流程使用CAS后的用戶(hù)認(rèn)證流程:圖2.2使用CAS后的用戶(hù)認(rèn)證流程示意圖中,CAS相關(guān)局部被標(biāo)示為藍(lán)色。在這個(gè)流程中,員工solomon向日志系統(tǒng)請(qǐng)求進(jìn)入主頁(yè)面,他的瀏覽器發(fā)出的請(qǐng)求被嵌入在日志系統(tǒng)中的CAS客戶(hù)端〔過(guò)濾器〕攔截,并判斷該請(qǐng)求是否帶有CAS的證書(shū);如果沒(méi)有,員工solomon將被定位到CAS的統(tǒng)一用戶(hù)登錄界面進(jìn)行登錄認(rèn)證,成功后,CAS將自動(dòng)引導(dǎo)AT返回日志系統(tǒng)的主頁(yè)面。
2.3CAS效勞的具體實(shí)現(xiàn)
環(huán)境假設(shè):用戶(hù)User要訪問(wèn)業(yè)務(wù)系統(tǒng)Woolong;Woolong系統(tǒng)部署在WoolongServer上;CAS的系統(tǒng)搭建在效勞器CASserver上。圖2.3CAS效勞的具體實(shí)現(xiàn)圖例說(shuō)明:
Step1:用戶(hù)第一次訪問(wèn)Woolong系統(tǒng)主頁(yè)://Woolong/index.jsp;部署在Woolong系統(tǒng)上的CASFilter發(fā)現(xiàn)用戶(hù)尚未登錄,將用戶(hù)重定向的CAS登錄界面: s://CASserver/cas/servlet/login?service=://Woolong/index.jsp,同時(shí)在重定向的URL上用service參數(shù)將用戶(hù)的目標(biāo)地址傳給CAS效勞器。
Step2:用戶(hù)在CAS的登錄頁(yè)上輸入用戶(hù)名密碼登錄,CAS效勞器認(rèn)證通過(guò)后,生成一個(gè)ticket,并帶在目標(biāo)地址的尾部返回客戶(hù)端的瀏覽器redirect:://Woolong/index.jsp?ticket=casticket.
Step3:客戶(hù)端瀏覽器獲得CAS效勞器的認(rèn)證應(yīng)答,取得憑證ticket后,使用重定向的鏈接://Woolong/index.jsp?ticket=casticket訪問(wèn)Woolong效勞
Step4:WoolongServer上的CASFilter再次過(guò)濾訪問(wèn)請(qǐng)求,并獲得ticket憑證。Filter將使用該憑證通過(guò)URLs://CASserver/cas/servlet/validate?service=://Woolong/index.jsp&ticket=casticket向CAS認(rèn)證中心確認(rèn)對(duì)應(yīng)的效勞請(qǐng)求和憑證是否有效。根據(jù)CAS效勞器返回的結(jié)果,如果憑證有效,那么CASFilter允許用戶(hù)進(jìn)入://Woolong/index.jsp所指向的頁(yè)面;否那么,再次重定向到s://CASserver/cas/servlet/login?service=://Woolong/index.jsp上要求用戶(hù)進(jìn)行認(rèn)證。
2.4代理認(rèn)證ProxyAuthentication
假設(shè)有一下這樣的應(yīng)用場(chǎng)景:用戶(hù)solomon早晨來(lái)到公司,他的第一件事就是進(jìn)入泓浩公司的WooLong系統(tǒng)瀏覽一天的新咨詢(xún),如股票信息、天氣情況、業(yè)界新聞。他通過(guò)CAS的身份認(rèn)證登錄了門(mén)戶(hù)系統(tǒng),看到了他訂制的信息。之后,他要訪問(wèn)WooLong中的郵件信息,看看有沒(méi)有新的郵件。這時(shí)候WooLong系統(tǒng)必須訪問(wèn)他的IMAP效勞器,這需要他的私人密碼。我們知道WooLong是通過(guò)CAS對(duì)solomon進(jìn)行認(rèn)證的,因此WooLong上沒(méi)有solomon的個(gè)人密碼信息。這時(shí),我們發(fā)現(xiàn),WooLong需要代表solomon的身份向IMAP效勞器提交身份認(rèn)證,而這正是ProxyAuthentication的作用。2.5CAS2.0代理認(rèn)證流程
以下的流程圖模擬上述的用戶(hù)solomon通過(guò)WooLong向他的IMAP郵件效勞器請(qǐng)求電子郵件的認(rèn)證過(guò)程。在該過(guò)程中,充當(dāng)Service和Proxy兩個(gè)角色的WooLong使用CASFilter對(duì)訪問(wèn)其自身的用戶(hù)進(jìn)行CAS認(rèn)證;同時(shí)WooLong要使用ProxyTicketReceptorservlet接收來(lái)自CASserver的PGT信息,并使用ProxyTicketValidator對(duì)象向CAS獲取訪問(wèn)IMAP效勞器的ProxyTicket憑證;最終從IMAP效勞器上獲取solomon用戶(hù)的mail信息。同樣的,這里的IMAP效勞器也要接受并認(rèn)可CAS對(duì)其用戶(hù)的認(rèn)證管理,同時(shí)它自己也成為二級(jí)Proxy,在有需要的情況下,一樣可以向它的back-endService發(fā)起ProxyAuthentication代理認(rèn)證請(qǐng)求。圖2.4代理認(rèn)證流程 其中藍(lán)色線表示或S的請(qǐng)求;紅色線表示應(yīng)答;黑色線表示來(lái)自CASserver端的回調(diào)操作。
2.6CAS2.0憑證
在CAS系統(tǒng)中,各方通過(guò)憑證(Ticket)對(duì)用戶(hù)身份進(jìn)行驗(yàn)證。CAS系統(tǒng)中設(shè)計(jì)了5種憑證:TGC、ST、PGT、PGTIOU、PT。TGC(Ticket-GrantingCookie):存放用戶(hù)身份認(rèn)證憑證的cookie,在瀏覽器和CAS間通訊時(shí)使用,并且只能基于平安通道傳輸,是CAS用來(lái)明確用戶(hù)身份的憑證;ST(ServiceTicket):效勞的惟一標(biāo)識(shí)碼。由CASServer發(fā)出,通過(guò)客戶(hù)端瀏覽器到達(dá)業(yè)務(wù)效勞器端。一個(gè)特定的效勞只能有一個(gè)惟一的ST;PGT(Proxy-Grantingticket):由CASServer頒發(fā)給擁有ST憑證的效勞。PGT綁定一個(gè)用戶(hù)的特定效勞,使其擁有向CASServer申請(qǐng),獲得PT的能力;PGTIOU(Proxy-GrantingTicketIOU):作用是將通過(guò)憑證校驗(yàn)時(shí)的應(yīng)答信息由CASServer返回給CASClient,同時(shí),與該GTIOU對(duì)應(yīng)的PGT將通過(guò)回調(diào)鏈接傳給Web應(yīng)用。Web應(yīng)用負(fù)責(zé)維護(hù)PGTIOU與PGT之間映射關(guān)系的內(nèi)容表;PT(ProxyTicket):是應(yīng)用程序代理用戶(hù)身份對(duì)目標(biāo)程序進(jìn)行訪問(wèn)的憑證。PT保存有代理及代理們進(jìn)行逐級(jí)訪問(wèn)過(guò)程的信息。
3LDAPLDAP是輕量目錄訪問(wèn)協(xié)議,英文全稱(chēng)是LightweightDirectoryAccessProtocol,一般都簡(jiǎn)稱(chēng)為L(zhǎng)DAP。它基于X.500標(biāo)準(zhǔn),并可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對(duì)訪問(wèn)Internet是必須的。簡(jiǎn)單說(shuō)來(lái),LDAP是一個(gè)得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。 LDAP與關(guān)系數(shù)據(jù)庫(kù)相似,是具有描述性的基于屬性的記錄集合,但它的數(shù)據(jù)類(lèi)型主要是字符型,為了檢索的需要添加了BIN〔二進(jìn)制數(shù)據(jù)〕、CIS〔忽略大小寫(xiě)〕、CES〔大小寫(xiě)敏感〕、TEL〔型〕等語(yǔ)法〔Syntax〕,而不是關(guān)系數(shù)據(jù)庫(kù)提供的整數(shù)、浮點(diǎn)數(shù)、日期、貨幣等類(lèi)型,同樣也不提供象關(guān)系數(shù)據(jù)庫(kù)中普遍包含的大量的函數(shù),它主要面向數(shù)據(jù)的查詢(xún)效勞〔查詢(xún)和修改操作比一般是大于10:1〕,不提供事務(wù)的回滾〔rollback〕機(jī)制,它的數(shù)據(jù)修改使用簡(jiǎn)單的鎖定機(jī)制實(shí)現(xiàn)All-or-Nothing,它的目標(biāo)是快速響應(yīng)和大容量查詢(xún)并且提供多目錄效勞器的信息復(fù)制功能。 LDAP最大的優(yōu)勢(shì)是:可以在任何計(jì)算機(jī)平臺(tái)上,用很容易獲得的而且數(shù)目不斷增加的LDAP的客戶(hù)端程序訪問(wèn)LDAP目錄。而且也很容易定制應(yīng)用程序?yàn)樗由螸DAP的支持。
4CAS整合LDAP配置過(guò)程4.1說(shuō)明ACAS驗(yàn)證效勞器ip地址:BCAS客戶(hù)端,WooLong業(yè)務(wù)系統(tǒng)ip地址:〔不再對(duì)圖進(jìn)行編號(hào),太累〕4.1LDAP安裝(A)如果不使用LDAP進(jìn)行賬號(hào)存儲(chǔ),此過(guò)程可跳過(guò)。 安裝LDAP數(shù)據(jù)庫(kù): 數(shù)據(jù)庫(kù)效勞器 數(shù)據(jù)庫(kù)客戶(hù)端 開(kāi)啟效勞ApacheDirectory 導(dǎo)入OnlineStore_backup.ldif 4.2配置效勞器(A) 配置host〔c盤(pán)下〕文件中的域名: 192.168.1.30casserver 安裝tomcat 開(kāi)啟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 //這里一定要填寫(xiě)正確的域名
您的組織單位名稱(chēng)是什么?
[Unknown]:test
您的組織名稱(chēng)是什么?
[Unknown]:test
您所在的城市或區(qū)域名稱(chēng)是什么?
[Unknown]:beijing
您所在的州或省份名稱(chēng)是什么?
[Unknown]:beijing
該單位的兩字母國(guó)家代碼是什么
[Unknown]:cn
CN=casserver,OU=test,O=test,L=beijing,ST=beijing,C=cn正確嗎?Y
完成后會(huì)在Tomcat目錄生成一個(gè)名為server.keystore的文件
2.生成效勞端證書(shū),執(zhí)行以下命令
keytool-export-aliascasserver-storepasschangeit-fileserver.cer
-keystoreserver.keystore
命令執(zhí)行后生成一個(gè)server.cer的證書(shū)文件
3.導(dǎo)入證書(shū)文件到cacerts文件中,執(zhí)行以下命令
keytool-import-trustcacerts-aliasserver-fileserver.cer-keystorecacerts-storepasschangeit
4.拷貝cacerts
把cacerts文件,拷貝到$java_home/jre/lib/security目錄〔假定為D〕下
。備注:如果是以MyEclipse開(kāi)啟Tomcat效勞,這里D那么為MyEclipse的TomcatJDK目錄下jre/lib/security。否那么請(qǐng)以Tomcat的JVM配置為準(zhǔn)。例如,這里如果以Tomcat的JVM目錄為準(zhǔn),那么拷貝的目錄為:E:\ProgramFiles\Java\jre1.6.0\lib\security〔這里的MyEclipse中的TomcatJVM設(shè)置與Tomcat本身的JVM設(shè)置時(shí)一致的,但是默認(rèn)情況是不一致的,請(qǐng)留意。〕
4.修改Tomcat的配置文件server.xml把以下補(bǔ)注釋的內(nèi)容翻開(kā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是驗(yàn)證效勞器端測(cè)試驗(yàn)證程序。 檢測(cè)SSL 翻開(kāi)瀏覽器,輸入:s://localhost:8443/cas4.3配置客戶(hù)端〔B,業(yè)務(wù)效勞器〕 配置host〔c盤(pán)下〕文件中的域名 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驗(yàn)證效勞器端相同〕 導(dǎo)入CASTestClient 拷貝CASTestClient文件夾到tomcatwebapps(B)目錄下 檢測(cè)單點(diǎn)登錄 翻開(kāi)瀏覽器,輸入:://localhost:8080/CASTestClient,此時(shí),客戶(hù)端重定向到cas驗(yàn)證效勞器端登錄界面,一旦完成驗(yàn)證,那么重定向到WooLong業(yè)務(wù)系統(tǒng)主頁(yè)。不關(guān)閉瀏覽器,翻開(kāi)新標(biāo)簽輸入://localhost:8080/CASTestClient,那么無(wú)需驗(yàn)證,直接到達(dá)WooLong業(yè)務(wù)系統(tǒng)主頁(yè)。4.4關(guān)于CASTestClient和cas的說(shuō)明cas是驗(yàn)證效勞器的最簡(jiǎn)單的驗(yàn)證效勞,用戶(hù)名和密碼一樣時(shí)即可通過(guò)驗(yàn)證。CASTestClient是一個(gè)簡(jiǎn)單的web應(yīng)用,主要需要對(duì)其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)行賬號(hào)驗(yàn)證,那么需要在驗(yàn)證效勞器的cas應(yīng)用中加上一定的修改。修改步驟如下:1.
添加“〞可以在spring的官方網(wǎng)站上找到,添加“
〞可以在cas官網(wǎng)下載的目錄cas-server-3.3.2\modules下找到?!泊颂巸蓚€(gè)jar包在附帶的文件下均已存在〕2.
翻開(kāi)目錄Tomcat6\webapps\cas\WEB-INF
找到配置文件“deployerConfigContext.xml〞,我們要將“SimpleTestUsernamePasswordAuthenticationHandler〞替換成“FastBindLdapAuthenticationHandler〞,分兩步完成:a)
添加一個(gè)contextSource <beanid="contextSource"class="org.springframework.ldap.core.support.LdapContextSo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度離職員工保密協(xié)議及競(jìng)業(yè)限制合同簽訂流程規(guī)范
- 二零二五年度知識(shí)產(chǎn)權(quán)保護(hù)合伙人合作協(xié)議范本
- 法律實(shí)務(wù)案例分析題及法律理論應(yīng)用題卷
- 共享平臺(tái)合作協(xié)議知識(shí)產(chǎn)權(quán)合作開(kāi)發(fā)協(xié)議
- 高峰會(huì)議交流與合作備忘錄
- 油漆勞務(wù)合同油漆工用工合同
- 基于大數(shù)據(jù)的農(nóng)業(yè)現(xiàn)代化種植管理系統(tǒng)開(kāi)發(fā)實(shí)踐
- 企業(yè)形象策劃及活動(dòng)推廣合作協(xié)議
- 精紡織品采購(gòu)合同
- 高一英語(yǔ)動(dòng)詞時(shí)態(tài)對(duì)照分析教案
- 2025屆高考化學(xué)二輪復(fù)習(xí):晶胞的相關(guān)性質(zhì)及計(jì)算(含解析)
- 2024年沙洲職業(yè)工學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2024年山東鋁業(yè)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年參考題庫(kù)含答案解析
- 2024年山東勞動(dòng)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 融合智慧數(shù)據(jù)的圖書(shū)館數(shù)智服務(wù)平臺(tái)研究
- 員工外宿免責(zé)協(xié)議書(shū)(2篇)
- IT科技產(chǎn)業(yè)云計(jì)算服務(wù)平臺(tái)開(kāi)發(fā)方案
- 2025年中國(guó)航天科工招聘筆試參考題庫(kù)含答案解析
- 血透室停電停水應(yīng)急預(yù)案
- 4《公民的基本權(quán)利和義務(wù)》(第2課時(shí))教學(xué)實(shí)錄-2024-2025學(xué)年道德與法治六年級(jí)上冊(cè)統(tǒng)編版
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)第一單元《位置與方向(一)》單元測(cè)試
評(píng)論
0/150
提交評(píng)論