基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文

基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文

ID:881539

大?。?19.02 KB

頁數(shù):42頁

時間:2017-09-22

基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文_第1頁
基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文_第2頁
基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文_第3頁
基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文_第4頁
基于net的單點登錄sso解決方案_畢業(yè)設(shè)計論文_第5頁
資源描述:

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

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

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

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

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

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

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

6、?token

7、(令牌)?

8、?info(用戶憑證)?

9、?timeout(過期時間)?

10、///?

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

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

13、);????????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"

當前文檔最多預覽五頁,下載文檔查看全文

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

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