<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁(yè) > 智能影音 >

    要聞速遞:主流單點(diǎn)登錄SSO技術(shù)方案對(duì)比分析,JWT、CAS、Oauth2、SAML

    單點(diǎn)登錄(SSO),英文全稱為 Single Sign On。 SSO 是指在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次,就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。SSO 服務(wù)用于解決同一公司不同業(yè)務(wù)應(yīng)用之間的身份認(rèn)證問(wèn)題,只需要登錄一次,即可訪問(wèn)所有添加的應(yīng)用。

    單點(diǎn)登錄的前提條件要做用戶統(tǒng)一身份管理,即統(tǒng)一用戶ID。比如阿里云應(yīng)用身份服務(wù)IDaaS(英文名:Alibaba Cloud Identity as a Service,簡(jiǎn)稱IDaaS)是阿里云為企業(yè)用戶提供的一套集中式身份、權(quán)限、應(yīng)用管理服務(wù)。市場(chǎng)上有很多類似的統(tǒng)一身份管理產(chǎn)品叫5A,提供集統(tǒng)一賬戶管理(Account)、統(tǒng)一身份認(rèn)證(Authentication)、統(tǒng)一授權(quán)管理(Authorization)、統(tǒng)一應(yīng)用管理(Application)、統(tǒng)一審計(jì)管理(Audit)。

    本文重點(diǎn)介紹統(tǒng)一身份認(rèn)證(Authentication),有的也叫單點(diǎn)登錄SSO,目前主流的SSO技術(shù)有JWT、CAS、Oauth2、SAML等。


    (資料圖片)

    一、基于JWT單點(diǎn)登錄

    Json web token ( JWT ), 是一種用于雙方之間傳遞安全信息的簡(jiǎn)潔的表述性聲明規(guī)范。JWT作為一個(gè)開(kāi)放的標(biāo)準(zhǔn)(RFC 7519),定義了一種簡(jiǎn)潔的方法用于通信雙方之間以 Json 對(duì)象的形式安全地傳遞信息,該 token被設(shè)計(jì)為緊湊且安全的,特別適用于分布式站點(diǎn)的單點(diǎn)登錄(SSO)場(chǎng)景。

    業(yè)務(wù)系統(tǒng)可以快速的接入IDaaS(身份服務(wù)中心)平臺(tái),從而完成單點(diǎn)登錄。并且JWT支持從SP(Service Provider 業(yè)務(wù)系統(tǒng))發(fā)起單點(diǎn)登錄請(qǐng)求,跳轉(zhuǎn)到IDaaS平臺(tái),進(jìn)行登錄,再跳轉(zhuǎn)回業(yè)務(wù)系統(tǒng)完成JWT令牌認(rèn)證和業(yè)務(wù)系統(tǒng)的登錄。同時(shí), 也支持從IDaaS平臺(tái)直接發(fā)起單點(diǎn)登錄請(qǐng)求,傳遞JWT令牌后, 在業(yè)務(wù)系統(tǒng)進(jìn)行驗(yàn)證,完成登錄。兩種方式主要共同點(diǎn)在于整個(gè)JWT的認(rèn)證流程(后半截)是相同的,都需要業(yè)務(wù)系統(tǒng)開(kāi)發(fā)JWT令牌驗(yàn)證和解析的接口,并且需要根據(jù)解析出來(lái)的用戶子賬戶信息,判斷用戶是否為該業(yè)務(wù)系統(tǒng)用戶。

    以下是基于JWT進(jìn)行單點(diǎn)登錄SSO的原理:

    圖中:IDaaS指用戶身份認(rèn)證中心,SP指業(yè)務(wù)系統(tǒng)。

    上述時(shí)序圖闡述了基于JWT發(fā)起SSO登錄請(qǐng)求時(shí)的基本流程,該流程主要分為以下6個(gè)步驟:

    1)用戶通過(guò)瀏覽器訪問(wèn) IdaaS(戶身份認(rèn)證中心)應(yīng)用服務(wù) 。

    2)瀏覽器向IDaaS發(fā)起單點(diǎn)登錄請(qǐng)求。

    3)IDaaS 生成 JWT token 令牌發(fā)送到業(yè)務(wù)系統(tǒng)。

    4)SP(業(yè)務(wù)系統(tǒng))獲取到 token 令牌,用提供的插件或方法解析驗(yàn)證 JWT token 令牌,解析成功獲取到用戶信息并驗(yàn)證用戶是否存在于業(yè)務(wù)系統(tǒng)中。

    5)業(yè)務(wù)應(yīng)用服務(wù)器創(chuàng)建自己系統(tǒng)的請(qǐng)求會(huì)話,然后跳轉(zhuǎn)到指定路徑。

    6)瀏覽器顯示應(yīng)用頁(yè)面,完成sso登錄。

    驗(yàn)證通過(guò):業(yè)務(wù)系統(tǒng)重定向到用戶首頁(yè),或指定的二級(jí)頁(yè)面。

    驗(yàn)證失敗:業(yè)務(wù)系統(tǒng)拒絕登錄頁(yè)面提示錯(cuò)誤信息。

    參考:https://help.aliyun.com/document_detail/167870.htm?spm=a2c4g.11186623.0.0.5c81578d0CileB#topic9164

    二、基于CAS單點(diǎn)登錄

    CAS (Central Authentication Service)中心授權(quán)服務(wù),是 耶魯大學(xué)(Yale University)發(fā)起的一個(gè)開(kāi)源項(xiàng)目,旨在為 Web 應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄方法。

    使用CAS 標(biāo)準(zhǔn)時(shí),首先是由 CAS Client 發(fā)起, CAS Client 會(huì)重定向到 CAS Server進(jìn)行登錄,由 CAS Server 進(jìn)行賬戶校驗(yàn)且多個(gè) CAS Client 之間可以共享登錄的 session ,Server 和 Client 是一對(duì)多的關(guān)系;

    從結(jié)構(gòu)上看,CAS 包含兩個(gè)部分: CAS Server 和 CAS Client 。 CAS Server 需要獨(dú)立部署,主要負(fù)責(zé)對(duì)用戶的認(rèn)證工作; CAS Client 負(fù)責(zé)處理對(duì)客戶端受保護(hù)資源的訪問(wèn)請(qǐng)求,需要登錄時(shí),重定向到 CAS Server。

    下圖是標(biāo)準(zhǔn) CAS 最基本的協(xié)議過(guò)程:

    CAS Client 與受保護(hù)的客戶端應(yīng)用部署在一起,以便 Filter 方式保護(hù)受保護(hù)的資源。對(duì)于訪問(wèn)受保護(hù)資源的每個(gè)人 Web 請(qǐng)求, CAS Client 會(huì)分析該請(qǐng)求的 Http 請(qǐng)求中是否包含 Service Ticket。如果沒(méi)有,則說(shuō)明當(dāng)前用戶尚未登錄,于是將請(qǐng)求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪問(wèn)的目的資源地址),以便登錄成功過(guò)后轉(zhuǎn)回該地址。

    用戶在上圖流程中的第 3 步輸入認(rèn)證信息,如果登錄成功,CAS Server 隨機(jī)產(chǎn)生一個(gè)相當(dāng)長(zhǎng)度、唯一、不可偽造的結(jié)果 Service Ticket,并緩存以待將來(lái)驗(yàn)證。之后系統(tǒng)自動(dòng)重定向到 Service 所在地址,并為客戶端瀏覽器設(shè)置一個(gè) Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過(guò)后,在第 5,6 步中與 CAS Server 進(jìn)行身份核實(shí),以確保安全 Service Ticket 的合法性。

    在 IDaaS 中, CAS (標(biāo)準(zhǔn))應(yīng)用模板實(shí)現(xiàn)了標(biāo)準(zhǔn)的 CAS 流程。它充當(dāng)一個(gè) CAS Server的角色。當(dāng) CAS Cient 決定使用IDaaS作為 CAS Server 時(shí)。在登錄認(rèn)證時(shí)需要使用 IDaaS 系統(tǒng)中公司的主賬號(hào),密碼進(jìn)行認(rèn)證。

    參考:https://help.aliyun.com/document_detail/163690.htm?spm=a2c4g.11186623.0.0.5c8166e2e2YyPx#topic-2486957

    三、基于OAuth 2.0單點(diǎn)登錄

    OAuth 2.0的草案是在2010年5月初在IETF發(fā)布的。OAuth2是一個(gè)授權(quán)協(xié)議, 主要用來(lái)作為API的保護(hù), 我們稱之為STS(安全令牌服務(wù), Security Token Service)。 但是在某些情況下, 也可以被用來(lái)實(shí)現(xiàn)WEB SSO單點(diǎn)登錄。一般的流程是用戶把發(fā)起頁(yè)面的URL和state參數(shù)關(guān)聯(lián)上, 并保存在SP(業(yè)務(wù)系統(tǒng))本地,用戶登錄后, 可以獲取一個(gè)Code, 利用Code拿到AT(Access Token) 后, 可以利用這個(gè)AT獲取用戶信息userinfo, 進(jìn)而從state 中, 獲取到對(duì)應(yīng)的原始URL,并跳轉(zhuǎn)到這個(gè)URL, 從而實(shí)現(xiàn)登錄到一個(gè)業(yè)務(wù)應(yīng)用SP的效果。 本文檔詳細(xì)描述了這個(gè)SSO過(guò)程。

    圖中:IDP指身份提供者,SP指業(yè)務(wù)系統(tǒng)。

    參考:https://help.aliyun.com/document_detail/193871.htm?spm=a2c4g.11186623.0.0.5c811199rqKv9c#topic-2004851

    https://www.ruanyifeng.com/blog/2019/04/oauth_design.html

    https://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html

    四、基于SAML協(xié)議單點(diǎn)登錄

    在SAML協(xié)議出現(xiàn)之前,傳統(tǒng)Web應(yīng)用系統(tǒng)單點(diǎn)登錄大都通過(guò)Cookie來(lái)實(shí)現(xiàn),但由于瀏覽器的安全限制,只有同一個(gè)域名下的系統(tǒng)才可以共享Cookie,在云計(jì)算大行其道的今天, 該方案無(wú)法解決像SaaS這種跨多個(gè)域名系統(tǒng)之間的認(rèn)證和授權(quán)問(wèn)題,于是SAML協(xié)議應(yīng)運(yùn)而生。

    SAML(Security Assertion Markup Language 安全斷言標(biāo)記語(yǔ)言)是一個(gè)基于XML的開(kāi)源標(biāo)準(zhǔn)數(shù)據(jù)格式,為在安全域間交換身份認(rèn)證和授權(quán)數(shù)據(jù),尤其是在IDP(身份提供者)和SP(業(yè)務(wù)系統(tǒng))之間。SAML是OASIS(Organization for the Advancement of Structured Information Standards 安全服務(wù)技術(shù)委員會(huì))制定的標(biāo)準(zhǔn),始于2001年,其最新主要版本SAML 2.0于2005年發(fā)布。

    作為一種流行的SSO協(xié)議, SAML同時(shí)支持IDP發(fā)起和SP發(fā)起, 也就是可以在登錄門(mén)戶后,跳轉(zhuǎn)到任意一個(gè)應(yīng)用, 也可以從一個(gè)應(yīng)用發(fā)起,跳轉(zhuǎn)到IDP, 登錄認(rèn)證后,再跳轉(zhuǎn)回這個(gè)應(yīng)用, 繼續(xù)SSO。 二者都是SSO, 流程的前半部分參數(shù)不同, 后半部分是很相似的。

    圖中:IDP指身份提供者,SP指業(yè)務(wù)系統(tǒng)。

    用戶請(qǐng)求SP資源,SP生成SAML請(qǐng)求,IDP接收并解析SAML請(qǐng)求并進(jìn)行用戶認(rèn)證后返回SAML響應(yīng),SP接收并解析SAML響應(yīng)后,提起其中的令牌Assertion, 提供被請(qǐng)求的資源給用戶使用。

    參考:https://help.aliyun.com/document_detail/160431.htm?spm=a2c4g.11186623.0.0.5c814a9cveiFa3#topic930

    https://baijiahao.baidu.com/s?id=1725446632667720841&wfr=spider&for=pc

    單點(diǎn)登錄技術(shù)如何選擇

    JWT、CAS、Oauth2、SAML這幾種單點(diǎn)登錄方式,如何選擇?主要從適用場(chǎng)景和集成難易程度兩個(gè)方面考慮。從開(kāi)發(fā)集成難易程度方面考慮,JWT最簡(jiǎn)單,CAS次之,Oauth2稍復(fù)雜,SAML最復(fù)雜。阿里云IDaaS推薦優(yōu)先使用JWT方式,集成簡(jiǎn)單,業(yè)務(wù)系統(tǒng)改造較少,尤其適用于前后端分離架構(gòu)下已經(jīng)使用了JWT技術(shù)的系統(tǒng)。Oauth2是目前互聯(lián)網(wǎng)最流行的單點(diǎn)登錄技術(shù),比如微信平臺(tái)、QQ平臺(tái)、釘釘平臺(tái)等,但在企業(yè)應(yīng)用方面,Oauth2使用遠(yuǎn)沒(méi)有CAS多,尤其是企業(yè)存在大量的存量系統(tǒng),有的是前后端分離架構(gòu),基于token認(rèn)證鑒權(quán),有的是傳統(tǒng)SOA架構(gòu),基于中間件session會(huì)話認(rèn)證鑒權(quán),所以在企業(yè)內(nèi)部改造Oauth2的成本比較高。SAML是協(xié)議最復(fù)雜的一種SSO,安全性最好,僅僅適用于web,開(kāi)發(fā)集成難度高,一般企業(yè)內(nèi)部的應(yīng)用系統(tǒng)不推薦使用。

    總之,在可滿足業(yè)務(wù)需求的情況下,優(yōu)先選擇集成開(kāi)發(fā)簡(jiǎn)單的單點(diǎn)登錄SSO技術(shù),推薦順序?yàn)镴WT、CAS、Oauth2、SAML。

    責(zé)任編輯:Rex_08

    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 日本一区免费电影| 韩国理论妈妈的朋友| 欧美高清老少配性啪啪| 天天做天天做天天综合网| 免费看AV毛片一区二区三区| 再深点灬舒服灬太大了添老师 | 思思久而久焦人| 向日葵app下载视频免费| 中文字幕人妻第一区| 青娱乐手机在线| 欧美肥妇毛多水多bbxx水蜜桃| 在线永久免费观看黄网站| 亚洲欧美色一区二区三区| 中文字幕第3页| 美妇又紧又嫩又多水好爽| 我叫王筱惠第1部分阅读| 国产欧美精品一区二区三区-老狼| 亚洲国产成AV人天堂无码| 777丰满影院| 日韩成人精品日本亚洲| 国产伦一区二区三区高清| 久久久久久不卡| 精品国产福利在线观看| 天天看天天射天天碰| 四虎精品免费永久免费视频| 一道本在线视频| 狠狠躁夜夜躁人人爽天天不卡软件 | 久久6这里只有精品| 网友偷自拍原创区| 天海翼被施爆两个小时| 亚洲日产综合欧美一区二区| 四虎在线免费视频| 欧美大交乱xxxxxbbb| 天天做人人爱夜夜爽2020毛片| 亚洲欧洲春色校园另类小说| 五月婷婷丁香六月| 无码国产精品一区二区高潮| 免费在线观看污网站| 自拍偷拍校园春色| 日本成人在线网址| 国产在线拍揄自揄拍无码|