CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記_第1頁(yè)
CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記_第2頁(yè)
CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記_第3頁(yè)
CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記_第4頁(yè)
CAS整合LDAP實(shí)現(xiàn)單點(diǎn)登錄學(xué)習(xí)筆記_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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配置過程 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)登錄是指基于用戶/會(huì)話認(rèn)證的一個(gè)過程,用戶只需一次性提供憑證〔僅一次登錄〕,就可以訪問多個(gè)應(yīng)用。目前單點(diǎn)登錄主要基于Web的多種應(yīng)用程序,即通過瀏覽器實(shí)現(xiàn)對(duì)多個(gè)B/S架構(gòu)應(yīng)用的統(tǒng)一賬戶認(rèn)證。

2CAS2.1JA-SIG〔CAS〕的設(shè)計(jì)愿景CAS〔CentralAuthenticationService–中心認(rèn)證效勞〕的目的就是使分布在一個(gè)企業(yè)內(nèi)部各個(gè)異構(gòu)系統(tǒng)的認(rèn)證工作集中在一起,通過一個(gè)公用的認(rèn)證系統(tǒng)統(tǒng)一管理和驗(yàn)證用戶的身份。在CAS上認(rèn)證的用戶將獲得CAS頒發(fā)的一個(gè)證書,使用這個(gè)證書,用戶可以在成認(rèn)CAS證書的各個(gè)系統(tǒng)上自由穿梭訪問,不需要再次的登錄認(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)一的用戶身份和密鑰管理,減少多套密碼系統(tǒng)造成的管理本錢和平安漏洞;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)的用戶認(rèn)證流程使用CAS后的用戶認(rèn)證流程:圖2.2使用CAS后的用戶認(rèn)證流程示意圖中,CAS相關(guān)局部被標(biāo)示為藍(lán)色。在這個(gè)流程中,員工solomon向日志系統(tǒng)請(qǐng)求進(jìn)入主頁(yè)面,他的瀏覽器發(fā)出的請(qǐng)求被嵌入在日志系統(tǒng)中的CAS客戶端〔過濾器〕攔截,并判斷該請(qǐng)求是否帶有CAS的證書;如果沒有,員工solomon將被定位到CAS的統(tǒng)一用戶登錄界面進(jìn)行登錄認(rèn)證,成功后,CAS將自動(dòng)引導(dǎo)AT返回日志系統(tǒng)的主頁(yè)面。

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)主頁(yè)://Woolong/index.jsp;部署在Woolong系統(tǒng)上的CASFilter發(fā)現(xiàn)用戶尚未登錄,將用戶重定向的CAS登錄界面: s://CASserver/cas/servlet/login?service=://Woolong/index.jsp,同時(shí)在重定向的URL上用service參數(shù)將用戶的目標(biāo)地址傳給CAS效勞器。

Step2:用戶在CAS的登錄頁(yè)上輸入用戶名密碼登錄,CAS效勞器認(rèn)證通過后,生成一個(gè)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再次過濾訪問請(qǐng)求,并獲得ticket憑證。Filter將使用該憑證通過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允許用戶進(jìn)入://Woolong/index.jsp所指向的頁(yè)面;否那么,再次重定向到s://CASserver/cas/servlet/login?service=://Woolong/index.jsp上要求用戶進(jìn)行認(rèn)證。

2.4代理認(rèn)證ProxyAuthentication

假設(shè)有一下這樣的應(yīng)用場(chǎng)景:用戶solomon早晨來(lái)到公司,他的第一件事就是進(jìn)入泓浩公司的WooLong系統(tǒng)瀏覽一天的新咨詢,如股票信息、天氣情況、業(yè)界新聞。他通過CAS的身份認(rèn)證登錄了門戶系統(tǒng),看到了他訂制的信息。之后,他要訪問WooLong中的郵件信息,看看有沒有新的郵件。這時(shí)候WooLong系統(tǒng)必須訪問他的IMAP效勞器,這需要他的私人密碼。我們知道WooLong是通過CAS對(duì)solomon進(jìn)行認(rèn)證的,因此WooLong上沒有solomon的個(gè)人密碼信息。這時(shí),我們發(fā)現(xiàn),WooLong需要代表solomon的身份向IMAP效勞器提交身份認(rèn)證,而這正是ProxyAuthentication的作用。2.5CAS2.0代理認(rèn)證流程

以下的流程圖模擬上述的用戶solomon通過WooLong向他的IMAP郵件效勞器請(qǐng)求電子郵件的認(rèn)證過程。在該過程中,充當(dāng)Service和Proxy兩個(gè)角色的WooLong使用CASFilter對(duì)訪問其自身的用戶進(jìn)行CAS認(rèn)證;同時(shí)WooLong要使用ProxyTicketReceptorservlet接收來(lái)自CASserver的PGT信息,并使用ProxyTicketValidator對(duì)象向CAS獲取訪問IMAP效勞器的ProxyTicket憑證;最終從IMAP效勞器上獲取solomon用戶的mail信息。同樣的,這里的IMAP效勞器也要接受并認(rèn)可CAS對(duì)其用戶的認(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)中,各方通過憑證(Ticket)對(duì)用戶身份進(jìn)行驗(yàn)證。CAS系統(tǒng)中設(shè)計(jì)了5種憑證:TGC、ST、PGT、PGTIOU、PT。TGC(Ticket-GrantingCookie):存放用戶身份認(rèn)證憑證的cookie,在瀏覽器和CAS間通訊時(shí)使用,并且只能基于平安通道傳輸,是CAS用來(lái)明確用戶身份的憑證;ST(ServiceTicket):效勞的惟一標(biāo)識(shí)碼。由CASServer發(fā)出,通過客戶端瀏覽器到達(dá)業(yè)務(wù)效勞器端。一個(gè)特定的效勞只能有一個(gè)惟一的ST;PGT(Proxy-Grantingticket):由CASServer頒發(fā)給擁有ST憑證的效勞。PGT綁定一個(gè)用戶的特定效勞,使其擁有向CASServer申請(qǐng),獲得PT的能力;PGTIOU(Proxy-GrantingTicketIOU):作用是將通過憑證校驗(yàn)時(shí)的應(yīng)答信息由CASServer返回給CASClient,同時(shí),與該GTIOU對(duì)應(yīng)的PGT將通過回調(diào)鏈接傳給Web應(yīng)用。Web應(yīng)用負(fù)責(zé)維護(hù)PGTIOU與PGT之間映射關(guān)系的內(nèi)容表;PT(ProxyTicket):是應(yīng)用程序代理用戶身份對(duì)目標(biāo)程序進(jìn)行訪問的憑證。PT保存有代理及代理們進(jìn)行逐級(jí)訪問過程的信息。

3LDAPLDAP是輕量目錄訪問協(xié)議,英文全稱是LightweightDirectoryAccessProtocol,一般都簡(jiǎn)稱為L(zhǎng)DAP。它基于X.500標(biāo)準(zhǔn),并可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對(duì)訪問Internet是必須的。簡(jiǎn)單說來(lái),LDAP是一個(gè)得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式。 LDAP與關(guān)系數(shù)據(jù)庫(kù)相似,是具有描述性的基于屬性的記錄集合,但它的數(shù)據(jù)類型主要是字符型,為了檢索的需要添加了BIN〔二進(jìn)制數(shù)據(jù)〕、CIS〔忽略大小寫〕、CES〔大小寫敏感〕、TEL〔型〕等語(yǔ)法〔Syntax〕,而不是關(guān)系數(shù)據(jù)庫(kù)提供的整數(shù)、浮點(diǎn)數(shù)、日期、貨幣等類型,同樣也不提供象關(guān)系數(shù)據(jù)庫(kù)中普遍包含的大量的函數(shù),它主要面向數(shù)據(jù)的查詢效勞〔查詢和修改操作比一般是大于10:1〕,不提供事務(wù)的回滾〔rollback〕機(jī)制,它的數(shù)據(jù)修改使用簡(jiǎn)單的鎖定機(jī)制實(shí)現(xiàn)All-or-Nothing,它的目標(biāo)是快速響應(yīng)和大容量查詢并且提供多目錄效勞器的信息復(fù)制功能。 LDAP最大的優(yōu)勢(shì)是:可以在任何計(jì)算機(jī)平臺(tái)上,用很容易獲得的而且數(shù)目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定制應(yīng)用程序?yàn)樗由螸DAP的支持。

4CAS整合LDAP配置過程4.1說明ACAS驗(yàn)證效勞器ip地址:BCAS客戶端,WooLong業(yè)務(wù)系統(tǒng)ip地址:〔不再對(duì)圖進(jìn)行編號(hào),太累〕4.1LDAP安裝(A)如果不使用LDAP進(jìn)行賬號(hào)存儲(chǔ),此過程可跳過。 安裝LDAP數(shù)據(jù)庫(kù): 數(shù)據(jù)庫(kù)效勞器 數(shù)據(jù)庫(kù)客戶端 開啟效勞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

該單位的兩字母國(guó)家代碼是什么

[Unknown]:cn

CN=casserver,OU=test,O=test,L=beijing,ST=beijing,C=cn正確嗎?Y

完成后會(huì)在Tomcat目錄生成一個(gè)名為server.keystore的文件

2.生成效勞端證書,執(zhí)行以下命令

keytool-export-aliascasserver-storepasschangeit-fileserver.cer

-keystoreserver.keystore

命令執(zhí)行后生成一個(gè)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。否那么請(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)留意?!?/p>

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是驗(yàn)證效勞器端測(cè)試驗(yàn)證程序。 檢測(cè)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驗(yàn)證效勞器端相同〕 導(dǎo)入CASTestClient 拷貝CASTestClient文件夾到tomcatwebapps(B)目錄下 檢測(cè)單點(diǎn)登錄 翻開瀏覽器,輸入:://localhost:8080/CASTestClient,此時(shí),客戶端重定向到cas驗(yàn)證效勞器端登錄界面,一旦完成驗(yàn)證,那么重定向到WooLong業(yè)務(wù)系統(tǒng)主頁(yè)。不關(guān)閉瀏覽器,翻開新標(biāo)簽輸入://localhost:8080/CASTestClient,那么無(wú)需驗(yàn)證,直接到達(dá)WooLong業(yè)務(wù)系統(tǒng)主頁(yè)。4.4關(guān)于CASTestClient和cas的說明cas是驗(yàn)證效勞器的最簡(jiǎn)單的驗(yàn)證效勞,用戶名和密碼一樣時(shí)即可通過驗(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.

翻開目錄Tomcat6\webapps\cas\WEB-INF

找到配置文件“deployerConfigContext.xml〞,我們要將“SimpleTestUsernamePasswordAuthenticationHandler〞替換成“FastBindLdapAuthenticationHandler〞,分兩步完成:a)

添加一個(gè)contextSource <beanid="contextSource"class="org.springframework.ldap.core.support.LdapContextSo

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論