九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SSO(單點(diǎn)登錄)實(shí)現(xiàn)機(jī)制講解
SSO(單點(diǎn)登錄)實(shí)現(xiàn)機(jī)制講解
分類:SSO單點(diǎn)登錄 2011-12-22 14:16 164人閱讀 (2)
引言
單點(diǎn)登錄有許多開發(fā)商提供解決方案,本文以yale大學(xué)SSO開源項(xiàng)目CAS為例,介紹單點(diǎn)登錄實(shí)現(xiàn)機(jī)制。
術(shù)語(yǔ)解釋
SSO-Single Sign On,單點(diǎn)登錄
TGT-Ticket Granting Ticket,用戶身份認(rèn)證憑證票據(jù)
ST-Service Ticket,服務(wù)許可憑證票據(jù)
TGC-Ticket Granting Cookie,存放用戶身份認(rèn)證憑證票據(jù)的cookie
SSO原理概述
SSO組件主要包含:SSO服務(wù)器、SSO客戶端。SSO服務(wù)器主要負(fù)責(zé)完成用戶認(rèn)證、提供單點(diǎn)登錄服務(wù);SSO客戶端部署在應(yīng)用系統(tǒng)(Web應(yīng)用端與C/S架構(gòu)模式應(yīng)用端),用戶請(qǐng)求訪問(wèn)應(yīng)用系統(tǒng)的受保護(hù)資源時(shí),需要將請(qǐng)求轉(zhuǎn)向SSO服務(wù)器進(jìn)行身份認(rèn)證、單點(diǎn)登錄服務(wù)相關(guān)處理。
SSO服務(wù)器接口
uri說(shuō)明
/login
憑證請(qǐng)求器,參數(shù)如下:
service:客戶端要訪問(wèn)的應(yīng)用的標(biāo)識(shí);
renew:如果設(shè)置這個(gè)參數(shù),sso將被繞過(guò);不支持renew和gateway同時(shí)存在,若存在則忽略gateway;
gateway:如果設(shè)置這個(gè)參數(shù),CAS將不再問(wèn)客戶端要憑證。
憑證接收器,參數(shù)如下:
service:客戶端要訪問(wèn)的應(yīng)用的標(biāo)識(shí);CAS在認(rèn)證成功后將它的url轉(zhuǎn)發(fā)給客戶端;
warn:在認(rèn)證轉(zhuǎn)發(fā)給其他服務(wù)前,客戶端必須給予提示。
/logout單點(diǎn)退出,釋放cas單點(diǎn)登錄的session
/proxyValidateSSO服務(wù)器驗(yàn)證票據(jù)的合法性
SSO單點(diǎn)登錄主要原理
SSO單點(diǎn)登錄訪問(wèn)流程主要有以下步驟:
1. 訪問(wèn)服務(wù):SSO客戶端發(fā)送請(qǐng)求訪問(wèn)應(yīng)用系統(tǒng)提供的服務(wù)資源。
2. 定向認(rèn)證:SSO客戶端會(huì)重定向用戶請(qǐng)求到SSO服務(wù)器。
3. 用戶認(rèn)證:用戶身份認(rèn)證。
4. 發(fā)放票據(jù):SSO服務(wù)器會(huì)產(chǎn)生一個(gè)隨機(jī)的Service Ticket。
5. 驗(yàn)證票據(jù):SSO服務(wù)器驗(yàn)證票據(jù)Service Ticket的合法性,驗(yàn)證通過(guò)后,允許客戶端訪問(wèn)服務(wù)。
6. 傳輸用戶信息:SSO服務(wù)器驗(yàn)證票據(jù)通過(guò)后,傳輸用戶認(rèn)證結(jié)果信息給客戶端。
7. 單點(diǎn)退出:用戶退出單點(diǎn)登錄。
SSO單點(diǎn)登錄訪問(wèn)總共會(huì)涉及以上6個(gè)步驟,但用戶不同的SSO訪問(wèn)可能只會(huì)涉及到幾個(gè)步驟,我們把SSO訪問(wèn)流程我們分為5種實(shí)例情況介紹:登錄點(diǎn)首次訪問(wèn)、登錄點(diǎn)二次訪問(wèn)、單點(diǎn)首次訪問(wèn)、單點(diǎn)二次訪問(wèn)、單點(diǎn)退出。這5種實(shí)例應(yīng)當(dāng)可以比較全面地展示SSO訪問(wèn)實(shí)現(xiàn)的機(jī)制。
注:文中存在以下術(shù)語(yǔ)詞匯,解釋如下。
登錄點(diǎn):首次進(jìn)入子系統(tǒng)登錄的站點(diǎn)在本文中稱為登錄點(diǎn)。
單點(diǎn):用戶已經(jīng)登錄,而后再訪問(wèn)另一子系統(tǒng)的站點(diǎn)在本文中稱為單點(diǎn)。
登錄點(diǎn)首次訪問(wèn):是指首次訪問(wèn)應(yīng)用系統(tǒng),進(jìn)入登錄頁(yè)面的過(guò)程。登錄點(diǎn)二次訪問(wèn):是指在上述”登錄點(diǎn)“,再次進(jìn)行正常的訪問(wèn)”登錄點(diǎn)“的過(guò)程。
單點(diǎn)首次訪問(wèn):是指已經(jīng)在上述“登錄點(diǎn)”登錄后,再首次訪問(wèn)另一個(gè)子系統(tǒng)進(jìn)行訪問(wèn)的過(guò)程。單點(diǎn)二次訪問(wèn):是指已經(jīng)在上述“單點(diǎn)首次訪問(wèn)",再次進(jìn)行正常的訪問(wèn)”單點(diǎn)“的過(guò)程。
登錄點(diǎn)首次訪問(wèn)
說(shuō)明:用戶首次訪問(wèn)”登錄點(diǎn)“System1,session中沒(méi)有用戶上下文,于是將請(qǐng)求地址包裝為service參數(shù),轉(zhuǎn)向SSO服務(wù)器”定向認(rèn)證“,SSO服務(wù)器返回登錄頁(yè)面,用戶錄入用戶名、密碼等憑證信息,提交給SSO服務(wù)器,SSO服務(wù)器進(jìn)行認(rèn)證,認(rèn)證成功后,生成TGT,再根據(jù)TGT發(fā)放票據(jù)ST,返回響應(yīng)給瀏覽器,瀏覽器帶著票據(jù)ST的service參數(shù)的請(qǐng)求,請(qǐng)求SSO服務(wù)器驗(yàn)證票據(jù),驗(yàn)證票據(jù)成功后,返回給瀏覽器用戶信息(通過(guò)cas協(xié)議約定的xml格式傳遞數(shù)據(jù)解析轉(zhuǎn)換成需要的用戶信息),設(shè)置session用戶上下文、cookie中設(shè)置TGC。
登錄點(diǎn)二次訪問(wèn)
說(shuō)明:用戶在上述“登錄點(diǎn)首次訪問(wèn)”登錄成功后,再次訪問(wèn)登錄點(diǎn)的應(yīng)用服務(wù)時(shí),判斷session中已經(jīng)存在用戶上下文,就不再攔截,直接轉(zhuǎn)向到需要訪問(wèn)的目標(biāo)服務(wù)資源。
單點(diǎn)首次訪問(wèn)
說(shuō)明:同上述“登錄點(diǎn)首次訪問(wèn)”的說(shuō)明。
單點(diǎn)二次訪問(wèn)
與“登錄點(diǎn)二次訪問(wèn)”相似。
單點(diǎn)退出
說(shuō)明:用戶單點(diǎn)登錄后,有一個(gè)全局的過(guò)濾器SingleSignOutFilter對(duì)訪問(wèn)的安全資源的ticket,sessionid記錄到一個(gè)映射表,我們暫稱其為票據(jù)會(huì)話映射表。在一個(gè)子系統(tǒng)(如system1)執(zhí)行單點(diǎn)退出"/logout"時(shí),先銷毀system1的本地session,再向SSO服務(wù)器發(fā)送單點(diǎn)退出請(qǐng)求,SSO服務(wù)器接到這個(gè)請(qǐng)求后,將用戶認(rèn)證票據(jù)TGT銷毀,清除瀏覽器cookie中的TGC,再讀取票據(jù)會(huì)話映射表,將其對(duì)應(yīng)的票據(jù)ST,session全部銷毀。這樣用戶再訪問(wèn)時(shí)各子系統(tǒng)時(shí),是單點(diǎn)退出狀態(tài),就需要重新登錄。
我們?cè)僭敿?xì)從CAS源碼中看看SSO單點(diǎn)退出實(shí)現(xiàn)機(jī)制。
SSO客戶端涉及源碼類圖如下:
一般web應(yīng)用中一般部署在web.xml文件中,單點(diǎn)退出相關(guān)配置如下:
<listener>
<listener-class>            edu.yale.its.tp.cas.client.session.SingleSignOutHttpSessionListener
</listener-class>
</listener>
<filter>
<filter-name>SingleSignOutFilter</filter-name>
<filter-class>
edu.yale.its.tp.cas.client.session.SingleSignOutFilter
</filter-class>
</filter>
<filter>
<filter-name>CasLogoutProxy</filter-name>
<filter-class>
edu.yale.its.tp.cas.exclient.SimpleServerLogoutHandler
</filter-class>
<init-param>
<param-name>logoutUrl</param-name>
<!--CAS Server  Logout URL-->
<param-value>
http://localhost:8080/ssoserver/logout
</param-value>
</init-param>
<init-param>
<!--CAS Client Application URL-->
<param-name>serviceUrl</param-name>
<param-value>
http://localhost:8070/ssoclient/index.jsp
</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>CasLogoutProxy</filter-name>
<url-pattern>/logout</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SingleSignOutFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
說(shuō)明:我們看到單點(diǎn)退出的相關(guān)類結(jié)構(gòu),web.xml配置了單點(diǎn)退出的相關(guān)類(1個(gè)監(jiān)聽器SingleSignOutHttpSessionListener,2個(gè)過(guò)濾器SingleSignOutFilter,SimpleServerLogoutHandler)。實(shí)現(xiàn)利用了session存儲(chǔ)機(jī)制,SessionStoreManager是個(gè)單例類,用于管理session的存儲(chǔ)、刪除;SessionMappingStorage是session的存儲(chǔ)、刪除的執(zhí)行者,可以看到實(shí)際存儲(chǔ)的結(jié)構(gòu)是一個(gè)artifactId、sessionId為名值對(duì)的HashMap表;監(jiān)聽器SingleSignOutHttpSessionListener的作用是session銷毀時(shí),調(diào)用session管理單例類SessionStoreManager進(jìn)行session的刪除銷毀;SingleSignOutFilter的作用有2個(gè):一個(gè)是在單點(diǎn)訪問(wèn)攔截安全資源時(shí)調(diào)用單例類SessionStoreManager存儲(chǔ)session,另一個(gè)是在單點(diǎn)退出時(shí)調(diào)用單例類SessionStoreManager刪除session;SimpleServerLogoutHandler的作用是將客戶端的退出請(qǐng)求轉(zhuǎn)發(fā)到SSO服務(wù)器端,集中處理做各個(gè)子系統(tǒng)的單點(diǎn)退出。
SSO服務(wù)器端單點(diǎn)退出涉及源碼類圖如下:
說(shuō)明:用戶發(fā)送單點(diǎn)退出請(qǐng)求,轉(zhuǎn)向到SSO服務(wù)器的單點(diǎn)退出服務(wù)接口/logout,SSO服務(wù)器將每次web請(qǐng)求構(gòu)造一個(gè)繼承類AbstractWebApplicationService的SimpleWebApplicationServiceImpl的實(shí)例,單點(diǎn)退出執(zhí)行l(wèi)ogOutOfService方法,銷毀票據(jù)、session等處理。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
單點(diǎn)登錄CAS技術(shù)概述
單點(diǎn)登錄系統(tǒng)(SSO)詳細(xì)設(shè)計(jì)說(shuō)明書(上篇) - 海納百川,有容乃大 - 博客園
CAS實(shí)現(xiàn)SSO單點(diǎn)登錄原理
大型電商網(wǎng)站SSO策略
統(tǒng)一身份認(rèn)證(CAS)簡(jiǎn)單說(shuō)明與設(shè)計(jì)方案
單點(diǎn)登錄簡(jiǎn)介
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服