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

        ?

        基于OAuth2.0協(xié)議的單點(diǎn)登錄系統(tǒng)研究與實(shí)現(xiàn)

        2021-01-24 12:06:56林彬彬
        關(guān)鍵詞:令牌用戶(hù)名單點(diǎn)

        林彬彬 李 超

        1.中國(guó)電建華東勘測(cè)設(shè)計(jì)研究院有限公司 浙江 杭州 311122 2.浙江華東工程數(shù)字技術(shù)有限公司 浙江 杭州 311122

        0 引言

        隨著企業(yè)網(wǎng)絡(luò)信息化的建設(shè),大多數(shù)企業(yè)會(huì)根據(jù)不同的業(yè)務(wù)構(gòu)建出不同的應(yīng)用系統(tǒng),這些應(yīng)用系統(tǒng)在不同的時(shí)間節(jié)點(diǎn)使用不同的開(kāi)發(fā)技術(shù)完成,不同的應(yīng)用系統(tǒng)之間的資源無(wú)法共享。每使用一個(gè)系統(tǒng)都需要輸入用戶(hù)名、密碼登錄。操作非常不方便,而且頻繁輸入用戶(hù)名和密碼容易造成用戶(hù)信息的泄露,降低系統(tǒng)的安全性。

        為了解決這個(gè)問(wèn)題,應(yīng)該將企業(yè)內(nèi)部的各個(gè)應(yīng)用系統(tǒng)集成到一個(gè)門(mén)戶(hù)系統(tǒng)之上,用戶(hù)只需要初始進(jìn)行一次登錄和身份認(rèn)證,就可以訪(fǎng)問(wèn)具有權(quán)限的任何系統(tǒng),而不需要再次登錄[2]。這一技術(shù)稱(chēng)作單點(diǎn)登錄技術(shù),它是企業(yè)進(jìn)行資源信息整合時(shí)最常用使用的解決方案。傳統(tǒng)的單點(diǎn)登錄系統(tǒng)中要求第三方系統(tǒng)中保存用戶(hù)名、密碼等信息,要求對(duì)接入單點(diǎn)登錄系統(tǒng)的第三方平臺(tái)進(jìn)行授權(quán)驗(yàn)證。OAuth為資源授權(quán)提供了一個(gè)開(kāi)放標(biāo)準(zhǔn),允許用戶(hù)授權(quán)第三方應(yīng)用訪(fǎng)問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息,而不需要將用戶(hù)名和密碼提供給第三方應(yīng)用或分享他們數(shù)據(jù)的所有內(nèi)容。OAuth2.0是OAuth協(xié)議的延續(xù)版本,它可以為web應(yīng)用、桌面應(yīng)用、移動(dòng)應(yīng)用提供授權(quán)流程。

        1 單點(diǎn)登錄技術(shù)發(fā)展與應(yīng)用

        OAuth2.0是用來(lái)允許用戶(hù)授權(quán)第三方應(yīng)用訪(fǎng)問(wèn)他在另一個(gè)服務(wù)器資源的一種協(xié)議,OAuth2.0在客戶(hù)端與服務(wù)提供商之間,設(shè)置了一個(gè)授權(quán)層(authorization layer)。客戶(hù)端不能直接登錄服務(wù)提供商,只能登錄授權(quán)層,以此將用戶(hù)與客戶(hù)端區(qū)分開(kāi)來(lái)。然后客戶(hù)端在登錄時(shí)候不使用賬號(hào)密碼,而是使用會(huì)自動(dòng)過(guò)期的令牌token??蛻?hù)端登錄授權(quán)層以后,服務(wù)提供商根據(jù)令牌的權(quán)限范圍和有效期,向客戶(hù)端開(kāi)放用戶(hù)儲(chǔ)存的資料。OAuth2.0主要涉及四個(gè)對(duì)象:

        (1)Client第三方應(yīng)用,我們的應(yīng)用就是一個(gè)Client;

        (2)Resource Owner資源所有者,即用戶(hù);

        (3)Authorization Server授權(quán)服務(wù)器,即提供第三方登錄服務(wù)的服務(wù)器;

        (4)Resource Server擁有資源信息的服務(wù)器,通常和授權(quán)服務(wù)器屬于同一應(yīng)用。

        OAuth2.0工作原理如下圖所示:

        圖1 OAuth2.0工作原理

        其步驟如下:

        (1)用戶(hù)打開(kāi)客戶(hù)端以后,客戶(hù)端要求用戶(hù)給予授權(quán)。

        (2)用戶(hù)同意給予客戶(hù)端授權(quán)。

        (3)客戶(hù)端使用上一步獲得的授權(quán),向認(rèn)證服務(wù)器申請(qǐng)令牌。

        (4)認(rèn)證服務(wù)器對(duì)客戶(hù)端進(jìn)行認(rèn)證以后,確認(rèn)無(wú)誤,同意發(fā)放令牌。

        (5)客戶(hù)端使用令牌,向資源服務(wù)器申請(qǐng)獲取資源。

        (6)資源服務(wù)器確認(rèn)令牌無(wú)誤,同意向客戶(hù)端開(kāi)放資源

        2 OAuth2.0工作模式

        OAuth 2.0定義了四種授權(quán)模式,授權(quán)許可類(lèi)型取決于應(yīng)用請(qǐng)求授權(quán)的方式和授權(quán)方支持的授權(quán)模式,每一種都有適用的應(yīng)用場(chǎng)景。

        2.1 授權(quán)碼模式 授權(quán)碼模式(authorization code)是功能最完整、流程最嚴(yán)密的授權(quán)模式。它的特點(diǎn)就是通過(guò)客戶(hù)端的后臺(tái)服務(wù)器,與“服務(wù)提供商”的認(rèn)證服務(wù)器進(jìn)行互動(dòng)。授權(quán)碼模式步驟如下:

        (1)用戶(hù)訪(fǎng)問(wèn)客戶(hù)端,后者將前者導(dǎo)向認(rèn)證服務(wù)器;

        (2)用戶(hù)選擇是否給予客戶(hù)端授權(quán);

        (3)假設(shè)用戶(hù)給予授權(quán),認(rèn)證服務(wù)器將用戶(hù)導(dǎo)向客戶(hù)端事先指定的“重定向 URI”(redirection URI),同時(shí)附上一個(gè)授權(quán)碼;

        (4)客戶(hù)端收到授權(quán)碼,附上早先的“重定向URI”,向認(rèn)證服務(wù)器申請(qǐng)令牌。這一步是在客戶(hù)端的后臺(tái)的服務(wù)器上完成的,對(duì)用戶(hù)不可見(jiàn);

        (5)認(rèn)證服務(wù)器核對(duì)了授權(quán)碼和重定向URI,確認(rèn)無(wú)誤后,向客戶(hù)端發(fā)送訪(fǎng)問(wèn)令牌(access token)和更新令牌(refresh token);

        2.2 簡(jiǎn)化模式 簡(jiǎn)化模式(implicit grant type)不通過(guò)第三方應(yīng)用程序的服務(wù)器,直接在瀏覽器中向認(rèn)證服務(wù)器申請(qǐng)令牌,跳過(guò)了"授權(quán)碼"這個(gè)步驟。所有步驟在瀏覽器中完成,令牌對(duì)訪(fǎng)問(wèn)者是可見(jiàn)的,且客戶(hù)端不需要認(rèn)證。簡(jiǎn)化模式步驟如下:

        (1)客戶(hù)端將用戶(hù)導(dǎo)向認(rèn)證服務(wù)器;

        (2)用戶(hù)決定是否給于客戶(hù)端授權(quán);

        (3)假設(shè)用戶(hù)給予授權(quán),認(rèn)證服務(wù)器將用戶(hù)導(dǎo)向客戶(hù)端指定的“重定向URI”,并在URI的Hash部分包含了訪(fǎng)問(wèn)令牌;

        (4)瀏覽器向資源服務(wù)器發(fā)出請(qǐng)求,其中不包括上一步收到的Hash值;

        (5)資源服務(wù)器返回一個(gè)網(wǎng)頁(yè),其中包含的代碼可以獲取Hash值中的令牌;

        (6)瀏覽器執(zhí)行上一步獲得的腳本,提取出令牌;

        (7)瀏覽器將令牌發(fā)給客戶(hù)端;

        2.3 密碼模式 密碼模式中,用戶(hù)向客戶(hù)端提供自己的用戶(hù)名和密碼??蛻?hù)端使用這些信息,向“服務(wù)商提供商”索要授權(quán)。在這種模式中,用戶(hù)必須把自己的密碼給客戶(hù)端,但是客戶(hù)端不得儲(chǔ)存密碼。這通常用在用戶(hù)對(duì)客戶(hù)端高度信任的情況下,比如客戶(hù)端是操作系統(tǒng)的一部分,或者由一個(gè)著名公司出品。而認(rèn)證服務(wù)器只有在其他授權(quán)模式無(wú)法執(zhí)行的情況下,才能考慮使用這種模式。密碼模式步驟如下:

        (1)用戶(hù)向客戶(hù)端提供用戶(hù)名和密碼;

        (2)客戶(hù)端將用戶(hù)名和密碼發(fā)給認(rèn)證服務(wù)器,向后者請(qǐng)求令牌;

        (3)認(rèn)證服務(wù)器確認(rèn)無(wú)誤后,向客戶(hù)端提供訪(fǎng)問(wèn)令牌;

        2.4 客戶(hù)端模式 客戶(hù)端模式(Client Credentials Grant)指客戶(hù)端以自己的名義,而不是以用戶(hù)的名義,向“服務(wù)提供商”進(jìn)行認(rèn)證。在這種模式中,用戶(hù)直接向客戶(hù)端注冊(cè),客戶(hù)端以自己的名義要求“服務(wù)提供商”提供服務(wù),其實(shí)不存在授權(quán)問(wèn)題??蛻?hù)端模式步驟

        (1)客戶(hù)端向認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證,并要求一個(gè)訪(fǎng)問(wèn)令牌;

        (2)認(rèn)證服務(wù)器確認(rèn)無(wú)誤后,向客戶(hù)端提供訪(fǎng)問(wèn)令牌;

        2.5 工作模式應(yīng)用場(chǎng)景

        表格1 授權(quán)模式對(duì)比

        3 單點(diǎn)登錄實(shí)現(xiàn)

        在某防汛數(shù)字化平臺(tái)項(xiàng)目中,平臺(tái)負(fù)責(zé)管理各個(gè)應(yīng)用系統(tǒng)訪(fǎng)問(wèn)入口,將各應(yīng)用系統(tǒng)的身份認(rèn)證功能集中控制。實(shí)現(xiàn)用戶(hù)在門(mén)戶(hù)平臺(tái)認(rèn)證通過(guò)后,無(wú)需二次認(rèn)證,即可訪(fǎng)問(wèn)其他應(yīng)用系統(tǒng)的效果[3]。由于平臺(tái)接入第三方應(yīng)用較多,涉及不同的技術(shù)架構(gòu),而且平臺(tái)與第三方間需要共享數(shù)據(jù),故采用授權(quán)碼模式進(jìn)行授權(quán)認(rèn)證,實(shí)現(xiàn)了單點(diǎn)登錄系統(tǒng)。平臺(tái)單點(diǎn)登錄流程示意圖如下:

        圖6 單點(diǎn)登錄流程示意圖

        平臺(tái)作為SSO認(rèn)證中心,負(fù)責(zé)處理客戶(hù)端的請(qǐng)求,發(fā)放授權(quán)碼。業(yè)務(wù)系統(tǒng)SSO客戶(hù)端拿到授權(quán)碼后根據(jù)平臺(tái)提供的SDK生成含應(yīng)用信息的令牌,用來(lái)訪(fǎng)問(wèn)受保護(hù)的資源。第三方客戶(hù)端單點(diǎn)登錄接入步驟:

        (1)應(yīng)用通過(guò)瀏覽器或Webview將用戶(hù)引導(dǎo)到第三方認(rèn)證頁(yè)面上(GET請(qǐng)求)https://domain.com/v1/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code

        (2)用戶(hù)對(duì)應(yīng)用進(jìn)行授權(quán)用戶(hù)可選擇同意授權(quán)或拒絕授權(quán),第三方網(wǎng)站應(yīng)該做好拒絕提示頁(yè)面。

        (3)平臺(tái)認(rèn)證服務(wù)器通過(guò)回調(diào)地址{redirect_uri}將用戶(hù)授權(quán)碼傳遞給應(yīng)用服務(wù)器或者直接在Webview中跳轉(zhuǎn)到攜帶用戶(hù)授權(quán)碼的回調(diào)地址({redirect_uri}?code=abc&state=xyz)

        (4)應(yīng)用服務(wù)器或Webview使用access_token API向平臺(tái)認(rèn)證服務(wù)器發(fā)送post請(qǐng)求傳入用戶(hù)授權(quán)碼以及回調(diào)地址(POST請(qǐng)求)https://domain.com/v1/oauth/token?grant_type=authorization_code&code={code}&client_id={client_id}&redirect_uri={redirect_uri}&client_secret={client_secret}

        (5)平臺(tái)認(rèn)證服務(wù)器返回access_token應(yīng)用通過(guò)access_token訪(fǎng)問(wèn)Open API使用用戶(hù)數(shù)據(jù)。

        (6)當(dāng)access_token過(guò)期后,通過(guò)以下refresh_token方式重新獲取access_token(POST請(qǐng)求)https://domain.com/v1/oauth/token?grant_type=refresh_token&refresh_token={refresh_token}

        應(yīng)用效果評(píng)價(jià):平臺(tái)通過(guò)該單點(diǎn)登錄系統(tǒng),實(shí)現(xiàn)了17個(gè)外部系統(tǒng)無(wú)縫集成,滿(mǎn)足了第三方應(yīng)用外鏈跳轉(zhuǎn)及頁(yè)面框架內(nèi)部集成等多種單點(diǎn)登錄訪(fǎng)問(wèn)方式,完成了對(duì)相關(guān)業(yè)務(wù)系統(tǒng)的集成整合工作。

        4 結(jié)語(yǔ)

        本文針對(duì)信息化建設(shè)過(guò)程中出現(xiàn)的各應(yīng)用系統(tǒng)用戶(hù)系統(tǒng)獨(dú)立、身份認(rèn)證系統(tǒng)獨(dú)立的現(xiàn)狀,提出了在確保各應(yīng)用系統(tǒng)正常運(yùn)行不受打擾的前提下,利用單點(diǎn)登錄技術(shù)解決所述問(wèn)題的思路。深入研究OAuth2.0協(xié)議工作原理,分析了授權(quán)模式選型應(yīng)用場(chǎng)景。最后結(jié)合實(shí)際項(xiàng)目案例,實(shí)現(xiàn)了基于OAuth授權(quán)碼模式的單點(diǎn)登錄系統(tǒng),并在項(xiàng)目中取得高度認(rèn)可,可以在行業(yè)內(nèi)部以及其他行業(yè)推廣應(yīng)用。

        猜你喜歡
        令牌用戶(hù)名單點(diǎn)
        《護(hù)士進(jìn)修雜志》投稿程序
        稱(chēng)金塊
        歷元間載波相位差分的GPS/BDS精密單點(diǎn)測(cè)速算法
        基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
        超薄異型坯連鑄機(jī)非平衡單點(diǎn)澆鑄實(shí)踐與分析
        山東冶金(2019年5期)2019-11-16 09:09:10
        動(dòng)態(tài)令牌分配的TCSN多級(jí)令牌桶流量監(jiān)管算法
        機(jī)智的快遞員
        數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點(diǎn)發(fā)射的效果比較
        16噸單點(diǎn)懸掛平衡軸的優(yōu)化設(shè)計(jì)
        令牌在智能小區(qū)訪(fǎng)客系統(tǒng)的應(yīng)用
        科技傳播(2011年10期)2011-06-14 02:29:04
        久久中文字幕乱码免费| 久久伊人这里都是精品| 国产精品福利一区二区| 中文字幕无码不卡一区二区三区 | 国产一区二区三区的区| 337p粉嫩日本欧洲亚洲大胆| 1区2区3区高清视频| 精品少妇一区一区三区| 视频二区 无码中出| 性色av一区二区三区四区久久| 激情视频在线观看好大| av天堂精品久久综合网| 亚洲精品乱码久久久久久金桔影视 | 久久亚洲国产欧洲精品一| 亚洲成在人网站天堂日本| 午夜av天堂精品一区| 成熟了的熟妇毛茸茸| 亚洲国产av玩弄放荡人妇系列| 欧美老熟妇欲乱高清视频 | 免费a级毛片在线观看| 亚洲成aⅴ人片在线观看天堂无码| 国内精品久久人妻性色av| 精品日韩一级免费视频| 2020年国产精品| 99久久精品免费看国产情侣| 久久99精品久久久66| 久久国产精品精品国产色| 国产亚洲超级97免费视频| 国产精品ⅴ无码大片在线看| 国产精品网站夜色| 亚洲春色视频在线观看| 亚洲乱码中文字幕在线| 亚洲产国偷v产偷v自拍色戒| 91老司机精品视频| 精品日韩av专区一区二区| 免费a级毛片高清在钱| 亚洲乱码av中文一区二区| 人妻无码ΑV中文字幕久久琪琪布| 手机在线免费观看av不卡网站| av天堂午夜精品一区| 青草视频在线播放|