亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于.NET Web服務(wù)的跨域單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)

        2012-04-29 05:47:22徐輝
        電腦知識與技術(shù) 2012年20期
        關(guān)鍵詞:WEB服務(wù)跨域

        徐輝

        摘要:ASP.NET沒有跨域單點(diǎn)登錄的實(shí)現(xiàn)機(jī)制。分析了跨域單點(diǎn)登錄的原理,提出了一種在SSO網(wǎng)站存儲登錄的用戶對象,瀏覽器Cookie中存儲SSO網(wǎng)站的用戶令牌,信任網(wǎng)站之間傳遞令牌、間接共享Cookie的跨域SSO解決方案。

        關(guān)鍵詞:ASP.NET;跨域;單點(diǎn)登錄;Web服務(wù)

        中圖分類號:TP315文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)20-4907-02

        Implementation of Cross-domain Single Sign-on System Based on .NET Web Service

        XU Hui

        (School of Information and Statistics,Guangxi University of Finance and Economics, Nanning 530003,China)

        Abstract: ASP.NET does not have cross-domain single sign-on(SSO) implementation mechanism. This paper analyzes the cross-domain single sign-on principle, proposes a cross-domain SSO solution that logged-in user object is stored in SSO website, user token is stored in browsers Cookie, and then user token is passed between trusted sites, indirectly sharing Cookie.

        Key words: ASP.NET; cross-domain; single sign-on; Web services

        在當(dāng)今WWW的廣泛應(yīng)用中,許多單位已經(jīng)為內(nèi)部的各個應(yīng)用系統(tǒng)和Web門戶網(wǎng)站使用統(tǒng)一身份認(rèn)證中心進(jìn)行用戶認(rèn)證。單點(diǎn)登錄(SSO,Single Sign On)是流行的統(tǒng)一身份認(rèn)證解決方案之一。焦亞楠等人[1]提出了一種用Java實(shí)現(xiàn)、基于SAML的跨域單點(diǎn)登錄解決方案;岳小婷[2]提出了.NET平臺下同一主域下的單點(diǎn)登錄實(shí)現(xiàn)方法;許小東等人[3]提出了在.NET平臺下使用Forms身份認(rèn)證機(jī)制的單點(diǎn)登模型。對于跨域的單點(diǎn)登錄,ASP.NET沒有提供內(nèi)置的實(shí)現(xiàn)機(jī)制。因此,針對這一問題,該文提出一種采用SSO網(wǎng)站集中存儲登錄用戶的用戶對象,使不同域名的信任網(wǎng)站之間間接共享Cookie,生成用戶令牌在信任網(wǎng)站之間傳遞的SSO實(shí)現(xiàn)模型。

        1 NET跨域單點(diǎn)登錄模型

        為了實(shí)現(xiàn).NET跨域的SSO,引入一個專用的SSO網(wǎng)站,該網(wǎng)站有一個存儲用戶身份信息和授權(quán)訪問信息的數(shù)據(jù)庫,用于驗(yàn)證用戶身份、設(shè)置身份驗(yàn)證Cookie,以及授權(quán)訪問??缬騍SO模型如圖1所示。在該模型中,瀏覽器不儲存每個信任網(wǎng)站的身份驗(yàn)證Cookie,而是存儲SSO網(wǎng)站的唯一身份驗(yàn)證Cookie。瀏覽器對SSO模型下的任何信任網(wǎng)站的每個請求都重定向到SSO網(wǎng)站,由SSO網(wǎng)站檢查用戶的身份驗(yàn)證Cookie是否存在。如果存在身份驗(yàn)證Cookie,表明用戶已經(jīng)登錄,則從原請求的信任網(wǎng)站中提供授權(quán)的網(wǎng)頁給瀏覽器。如果不存在身份驗(yàn)證Cookie,則用戶被重定向到相應(yīng)網(wǎng)站的登錄頁面。

        瀏覽器存儲一個名為AuthUserToken的Cookie,其值的格式為“用戶令牌|有效時間”。用戶令牌是SSO網(wǎng)站驗(yàn)證用戶身份成功后返回的全局唯一值,表明用戶已通過SSO身份認(rèn)證??缬騿吸c(diǎn)登錄的過程為兩個階段:

        1)匿名用戶訪問網(wǎng)站1的授權(quán)頁面,首先重定向到SSO網(wǎng)站,并在URL中加入原請求的URL為參數(shù)。SSO網(wǎng)站檢查瀏覽器是否設(shè)置了身份驗(yàn)證Cookie,或請求中是否含有用戶令牌。如果兩者都沒有,則重定向到網(wǎng)站1的登錄頁面。用戶輸入憑據(jù)后,網(wǎng)站1調(diào)用SSO網(wǎng)站的Web服務(wù),驗(yàn)證用戶憑據(jù)。如果驗(yàn)證成功,則返回登錄的用戶對象和用戶令牌。此令牌是在用戶每次登錄時產(chǎn)生的GUID值。網(wǎng)站1標(biāo)識已登錄的用戶(如在Cookie中存儲用戶令牌),將原請求URL和用戶令牌作為新請求的參數(shù),重定向到SSO網(wǎng)站。SSO網(wǎng)站檢查傳入的請求URL,發(fā)現(xiàn)用戶令牌參數(shù),但沒有可用的身份驗(yàn)證Cookie,這表明用戶已通過網(wǎng)站1的驗(yàn)證。因此,SSO網(wǎng)站使用令牌,從用戶信息數(shù)據(jù)庫中檢索用戶,設(shè)置身份驗(yàn)證Cookie、用戶信息,以及有效時間等。然后重定向到網(wǎng)站1中最初請求URL的授權(quán)頁面,并在網(wǎng)址中傳遞令牌。網(wǎng)站1發(fā)現(xiàn)請求中含有用戶令牌,通過調(diào)用SSO網(wǎng)站的Web服務(wù),驗(yàn)證通過后,將最初請求頁面輸出到瀏覽器。這一過程對應(yīng)于圖1的步驟1-步驟7。

        2)在網(wǎng)站1登錄的用戶瀏覽器訪問其他信任網(wǎng)站(如網(wǎng)站2)的授權(quán)頁面時,將此請求作為URL參數(shù)重定向到SSO網(wǎng)站。由于瀏覽器已經(jīng)擁有SSO網(wǎng)站的身份驗(yàn)證Cookie,因此將這個Cookie添加到請求參數(shù),再發(fā)送請求到SSO網(wǎng)站。SSO網(wǎng)站檢查傳入的請求,找到身份驗(yàn)證Cookie,檢查該Cookie是否已過期。如果不過期,則從Cookie中檢索用戶令牌,并將請求重定向到網(wǎng)站2的最初請求URL,并在URL中加入用戶令牌參數(shù)。因此,網(wǎng)站2通過調(diào)用SSO網(wǎng)站的Web服務(wù),驗(yàn)證用戶令牌成功后,執(zhí)行網(wǎng)站2的最初請求頁面,將響應(yīng)輸出到瀏覽器。這一過程對應(yīng)于圖1的步驟8—步驟11。

        2 NET的跨域單點(diǎn)登錄設(shè)計(jì)

        2.1 SSO組成模塊

        基于.NET web服務(wù)的跨域單點(diǎn)登錄系統(tǒng)由四個模塊組成:登錄模塊、身份認(rèn)證模塊、Web服務(wù)代理模塊、授權(quán)管理模塊。登錄模塊實(shí)現(xiàn)用戶密碼的一次性驗(yàn)證;身份認(rèn)證模塊提供Web服務(wù)方法,驗(yàn)證用戶的合法性;Web服務(wù)代理模塊用于信任網(wǎng)站調(diào)用SSO網(wǎng)站的Web服務(wù);授權(quán)管理模塊授予合法用戶的訪問資源權(quán)限。

        2.2 SSO網(wǎng)站設(shè)計(jì)

        SSO網(wǎng)站主要實(shí)現(xiàn)統(tǒng)一的用戶身份驗(yàn)證、授權(quán)管理功能。用戶身份驗(yàn)證由信任網(wǎng)站通過SSO代理訪問,驗(yàn)證用戶身份,獲取SSO網(wǎng)站上用戶的登錄狀態(tài),它主要包含以下Web服務(wù)方法:

        1)Authenticate():驗(yàn)證瀏覽器提供的用戶憑據(jù)是否與用戶信息數(shù)據(jù)庫的用戶身份匹配。驗(yàn)證成功后返回登錄的用戶對象和令牌,將它們存儲到SSO網(wǎng)站應(yīng)用對象中,作為用戶已登錄SSO的標(biāo)記,同時將在瀏覽器Cookie中存儲令牌。

        2)GetUserByToken():根據(jù)令牌獲取對應(yīng)的用戶對象。

        3)IsUserLoggedIn():判斷令牌對應(yīng)的用戶是否已登錄SSO。

        授權(quán)管理是根據(jù)分配的資源權(quán)限,對通過SSO身份認(rèn)證的用戶授予訪問受保護(hù)頁面的權(quán)限。授權(quán)管理通過ASPX頁面(Authen ticate.aspx),設(shè)置和檢索用戶身份驗(yàn)證Cookie變量值。該頁面由SSO代理模塊重定向,根據(jù)請求的類型,設(shè)置、檢查或刪除身份驗(yàn)證Cookie變量。其主要方法如下:

        1)SetAuthCookie():如果在請求URL中含有Token參數(shù),意味著用戶是經(jīng)過SSO認(rèn)證的,因此,在用戶瀏覽器的Cookie中設(shè)置名為AuthUserToken的Cookie值,存儲用戶令牌、有效時間,再重向到原URL。

        2)CheckCookie():從瀏覽器Cookie中讀取AuthUserToken值,得到用戶令牌和有效時間。如果有效時間已過期,則刪除Au thUserToken,重定向到原URL。否則,重定向到原請求的URL。

        3)MarkUserLoggedOut():將SSO網(wǎng)站與用戶令牌對應(yīng)的應(yīng)用對象設(shè)置為null,標(biāo)記用戶已退出系統(tǒng)。

        2.3 SSO代理模塊的設(shè)計(jì)

        SSO代理模塊用于簡化信任網(wǎng)站的SSO調(diào)用,它實(shí)際上是一個動態(tài)鏈接庫(SSOProxy.DLL),由信任網(wǎng)站引用。它由信任網(wǎng)站執(zhí)行以下主要功能:1)通過Web服務(wù)與SSO網(wǎng)站通信,如身份驗(yàn)證、設(shè)置Cookie值;2)重定向到SSO站點(diǎn),請求登錄頁面或者提供請求的頁面。

        SSO代理模塊中定義了一個PrivatePage類,它繼承System.Web.UI.Page類,并重寫Page類的OnLoad()事件處理方法,實(shí)現(xiàn)在裝載頁面時,讀取請求URL中的參數(shù)值,調(diào)用SSO網(wǎng)站的Web服務(wù)方法,檢查用戶的登錄狀態(tài),根據(jù)其登錄狀態(tài),重定向到SSO網(wǎng)站、原請求URL,或者退出SSO系統(tǒng)。該類定義以下主要方法:

        1)LoadParameters():讀取URL的Token、Action、ReturnUrl等參數(shù)值。

        2)HandlePostbackRequest():若請求是登錄頁面。則不重定向到SSO。否則,檢查用戶是否已經(jīng)登錄SSO,根據(jù)登錄狀態(tài),重定向到相應(yīng)的頁面。

        3)RedirectToSSOSite():重定向SSO網(wǎng)站的授權(quán)頁面。

        4)Login():調(diào)用SSO的Web服務(wù)方法,驗(yàn)證用戶身份的合法性。

        5)ValidateUserStatusAndRedirect():檢查用戶狀態(tài),重定向到相應(yīng)的頁面。

        2.3信任網(wǎng)站的設(shè)計(jì)

        信任網(wǎng)站是SSO模型下的各種Web應(yīng)用程序。為了讓所有信任網(wǎng)站都由SSO網(wǎng)站進(jìn)行統(tǒng)一的身份認(rèn)證和授權(quán),只需要按照應(yīng)用需求設(shè)計(jì)好相應(yīng)的Web應(yīng)用程序,引用上述SSO代理類庫,并對Web應(yīng)用程序中需要保護(hù)的每個ASPX頁面的代碼類(即.aspx.cs文件)作修改,使ASPX頁面的代碼類繼承SSOProxy. PrivatePage類,而不是繼承System.Web.UI.Page類。同時對ASP.NET應(yīng)用程序的web.config配置文件添加如下內(nèi)容,指定SSO網(wǎng)站的Web服務(wù)URL、授權(quán)頁面URL,以及應(yīng)用程序自身的登錄頁面URL和默認(rèn)主頁URL。

        2.3信任網(wǎng)站的注銷設(shè)計(jì)

        注銷信任網(wǎng)站就是退出信任網(wǎng)站的Web應(yīng)用程序。在退出時,需要刪除瀏覽器Cookie中的用戶令牌、有效時間,并刪除SSO網(wǎng)站中與用戶令牌對應(yīng)的用戶對象。

        3結(jié)束語

        該文提出的.NET環(huán)境下基于Web服務(wù)的跨域單點(diǎn)登錄系統(tǒng),設(shè)計(jì)簡單,將它應(yīng)用于數(shù)字化校園管理系統(tǒng),實(shí)現(xiàn)校園網(wǎng)各種應(yīng)用的統(tǒng)一身份認(rèn)證和管理的功能。

        參考文獻(xiàn):

        [1]焦亞楠,胡春枝.基于SAML的跨域單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(1):157-160.

        [2]岳小婷. ASP. NET 2. 0單點(diǎn)登錄技術(shù)在數(shù)字化校園中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2009(5):106-109.

        [3]許小東,沈士根.基于ASP. NET的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)[J].嘉興學(xué)院學(xué)報,2011,23(3):90-94.

        猜你喜歡
        WEB服務(wù)跨域
        跨域異構(gòu)體系對抗聯(lián)合仿真試驗(yàn)平臺
        基于多標(biāo)簽協(xié)同學(xué)習(xí)的跨域行人重識別
        為群眾辦實(shí)事,嶗山區(qū)打出“跨域通辦”組合拳
        讀報參考(2022年1期)2022-04-25 00:01:16
        G-SRv6 Policy在跨域端到端組網(wǎng)中的應(yīng)用
        基于Web服務(wù)的SPSS與.NET系統(tǒng)集成開發(fā)
        軟件(2016年4期)2017-01-20 09:28:12
        基于線性回歸的航班延誤預(yù)測研究與系統(tǒng)開發(fā)
        教學(xué)工作量管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        一種基于SOA的web異構(gòu)數(shù)據(jù)集成方法研究
        一区二区三区不卡免费av| 亚洲日韩一区精品射精| 国产av一卡二卡日韩av| 久久精品国产99久久无毒不卡| 中文成人无码精品久久久不卡| 亚洲最新版无码AV| 日本高清二区视频久二区| 亚洲中文字幕在线一区| 日日碰狠狠添天天爽| 精品国产高清自在线99| 亚洲免费看三级黄网站| 人成综合视频在线播放| 熟女无套内射线观56| 91老司机精品视频| 亚洲国产成人精品一区刚刚| 国产亚洲av另类一区二区三区| 亚洲男人av天堂午夜在| YW亚洲AV无码乱码在线观看| 91桃色在线播放国产| 国产精品成人观看视频国产奇米| 日日澡夜夜澡人人高潮| 亚洲国产cao| 日韩女优一区二区在线观看| 少妇久久久久久人妻无码| 又粗又大又黄又爽的免费视频| 一级片久久| 手机在线看片在线日韩av| 中文字幕av久久亚洲精品| 国产精品va无码一区二区| 色播中文字幕在线视频| 日本一区二区三区丰满熟女| 丰满熟女高潮毛茸茸欧洲视频| 精品国产午夜福利在线观看| 高清av一区二区三区在线| 久久红精品一区二区三区| 免费无码一区二区三区蜜桃大| 男人天堂网在线视频| 18禁美女裸身无遮挡免费网站| 国产成人综合在线视频| 无码专区亚洲avl| 国产白色视频在线观看|