基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)

基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)

ID:28807658

大?。?59.04 KB

頁數(shù):42頁

時(shí)間:2018-12-14

基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)_第1頁
基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)_第2頁
基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)_第3頁
基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)_第4頁
基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)_第5頁
資源描述:

《基于net的單點(diǎn)登錄sso解決方案設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、基于.Net的單點(diǎn)登錄(SSO)解決方案畢業(yè)設(shè)計(jì)論文?????前些天一位朋友要我?guī)兔ψ鲆粏吸c(diǎn)登錄,其實(shí)這個(gè)概念早已耳熟能詳,但實(shí)際應(yīng)用很少,難得最近輕閑,于是決定通過本文來詳細(xì)描述一個(gè)SSO解決方案,希望對(duì)大家有所幫助。SSO的解決方案很多,但搜索結(jié)果令人大失所望,大部分是相互轉(zhuǎn)載,并且描述的也是走馬觀花。?????閑話少敘,進(jìn)入正題,我的想法是使用集中驗(yàn)證方式,多個(gè)站點(diǎn)集中Passport驗(yàn)證。?如下圖所示:?????為方便清晰描述,先定義幾個(gè)名詞,本文中出現(xiàn)之處均為如下含義。??????主站:Passport集中驗(yàn)證服務(wù)器?http://www.passport.com/

2、?。??????分站:http://www.a.com/、http://www.b.com/、http://www.c.com/???????憑證:用戶登錄后產(chǎn)生的數(shù)據(jù)標(biāo)識(shí),用于識(shí)別授權(quán)用戶,可為多種方式,DEMO中主站我使用的是Cache,分站使用Session。??????令牌:由Passport頒發(fā)可在各分站中流通的唯一標(biāo)識(shí)。?????OK,現(xiàn)在描述一下單點(diǎn)登錄的過程:?????情形一、匿名用戶:匿名用戶訪問分站a上的一個(gè)授權(quán)頁面,首先跳轉(zhuǎn)到主站讓用戶輸入帳號(hào)、密碼進(jìn)行登錄,驗(yàn)證通過后產(chǎn)生主站憑證,同時(shí)產(chǎn)生令牌,跳轉(zhuǎn)回分站a,此時(shí)分站a檢測到用戶已持有令牌,于是用令牌再

3、次去主站獲取用戶憑證,獲取成功后允許用戶訪問該授權(quán)頁面。同時(shí)產(chǎn)生分站a的本地憑證,當(dāng)該用戶需要再次驗(yàn)證時(shí)將先檢查本地憑證,以減少網(wǎng)絡(luò)交互。?????情形二、在分站a登錄的用戶訪問分站b:因?yàn)橛脩粼诜终綼登錄過,已持有令牌,所以分站b會(huì)用令牌去主站獲取用戶憑證,獲取成功后允許用戶訪問授權(quán)頁面。同時(shí)產(chǎn)生分站b的本地憑證。?????設(shè)計(jì)完成后,接下來是方案實(shí)現(xiàn)的一些關(guān)鍵點(diǎn):?????令牌:令牌由主站頒發(fā),主站頒發(fā)令牌同時(shí)生成用戶憑證,并記錄令牌與用戶憑證之間的對(duì)應(yīng)關(guān)系,以根據(jù)用戶提供的令牌響應(yīng)對(duì)應(yīng)的憑證;令牌要在各跨域分站中進(jìn)行流通,所以DEMO中令牌我使用主站的Cookie,并指

4、定Cookie.Domain="passport.com"。各分站如何共享主站的Cookie?從分站Redirect到主站頁面,然后該頁面讀取Cookie并以URL參數(shù)方式回傳即可,可在DEMO代碼中查看詳細(xì)實(shí)現(xiàn),當(dāng)然如果哪位有更好的令牌實(shí)現(xiàn)方式也拿出來分享。//產(chǎn)生令牌string?tokenValue?=?Guid.NewGuid().ToString().ToUpper();HttpCookie?tokenCookie?=?new?HttpCookie("Token");tokenCookie.Values.Add("Value",?tokenValue);tokenC

5、ookie.Domain?=?"passport.com";Response.AppendCookie(tokenCookie);??????主站憑證:主站憑證是一個(gè)關(guān)系表,包含了三個(gè)字段:令牌、憑證數(shù)據(jù)、過期時(shí)間。有多種實(shí)現(xiàn)方式可供選擇,要求可靠的話用數(shù)據(jù)庫,要求性能的話用Cache,DEMO中我使用的是Cache中的DataTable。如下代碼所示:///?

///?初始化數(shù)據(jù)結(jié)構(gòu)///?///?///?----------------------------------------------------///?

6、?

7、token(令牌)?

8、?info(用戶憑證)?

9、?timeout(過期時(shí)間)?

10、///?

11、--------------------------------------------------

12、///?private?static?void?cacheInit(){????if?(HttpContext.Current.Cache["CERT"]?==?null)????{????????DataTable?dt?=?new?DataTable();????????dt.Columns.Add("token",?Type.GetType("System.St

13、ring"));????????dt.Columns["token"].Unique?=?true;????????dt.Columns.Add("info",?Type.GetType("System.Object"));????????dt.Columns["info"].DefaultValue?=?null;????????dt.Columns.Add("timeout",?Type.GetType("System.DateTime"));????????dt.Columns["timeout"

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。