一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

多種認(rèn)證、授權(quán)模型的比較

 昵稱65038308 2020-07-16

本文主要列舉在如今前后端分離、手機(jī)App大行其道的現(xiàn)狀下,用戶認(rèn)證、授權(quán)的幾種做法及對(duì)比。PS. 本文假設(shè)你已經(jīng)理解了各種認(rèn)證模式的具體細(xì)節(jié)。

OAuth2.0的幾種模式

OAuth2.0是一個(gè)被廣泛采用的事實(shí)標(biāo)準(zhǔn),它同時(shí)包含認(rèn)證和授權(quán)兩種模式,我們來(lái)看一下它有幾種模式:

Grant typeClient ownerUser context?Client typeApp type
Authorization CodeThird-partyYconfidentialWeb app
Authorization Code, without client secretThird-partyYpublicUser-agent app
Authorization Code, without client secret, with PKCEThird-partyYpublicNative app
OAuth2 Implicit(deprecated)Third-partyYpublicUser-agent app, Native app
PasswordFirst-partyYbothWeb app, User-agent app, Native app
Client CredentialsThird-partyNconfidentialWeb app

名詞定義:

  • User: 自然人。

  • Client: 索要Authorization Code和Access Token的程序。

Client owner:

  • First-party: 第一方client,即client開(kāi)發(fā)者/廠商和Resource Server是同一個(gè)人/廠商。

  • Third-party: 第三方client,即client開(kāi)發(fā)者/廠商和Resource Server不是同一個(gè)人/廠商。OAuth 2.0主要解決的是第三方client的授權(quán)問(wèn)題。

User context:

  • Y: 代表被授權(quán)的資源是和當(dāng)前User相關(guān)的。

  • N: 代表被授權(quán)的資源是和Client相關(guān)的。

Client type:

  • Confidential: 這類Client和Authorization Server/Resource Server的通信是秘密進(jìn)行的。

  • Public: 這類Client和Authorization Server/Resource Server的通信是公開(kāi)進(jìn)行的。

App type:

  • web app: 這類App的代碼在服務(wù)器上執(zhí)行,用戶通過(guò)User-Agent(瀏覽器)下載App渲染的html頁(yè)面,并與之交互。比如,傳統(tǒng)的MVC應(yīng)用。

  • user-agent app: 這類App的代碼是直接下載到User-Agent(瀏覽器)里執(zhí)行的。比如,前后端分離App、SPA。

  • native app: 這類App安裝在用戶的設(shè)備上,可以認(rèn)為這類App內(nèi)部存儲(chǔ)的credential信息是有可能被提取的。比如,手機(jī)App、桌面App。

pixabayhttps://www./sites/73237.html wallhavenhttps://www./sites/73236.html

僅做認(rèn)證的模式

ModeClient belongUser ContextApp type
SessionFirst-partyYWeb app
SSOFirst-partyYWeb app
JWTFirst-partyYWeb app, User-agent app, Native app

詳細(xì)說(shuō)明以上三種模式:

Session模式: 就是我們傳統(tǒng)的Web app所使用的技術(shù),用戶輸入賬號(hào)和密碼登錄系統(tǒng),服務(wù)端返回一個(gè)名字叫做SESSIONID的Cookie,之后User-agent和服務(wù)端每次交互都會(huì)攜帶這個(gè)Cookie,通過(guò)這種方式來(lái)做到用戶登錄狀態(tài)的保持。

SSO模式: 其實(shí)是Session模式的變種,只不過(guò)把認(rèn)證從Session模式的本地認(rèn)證變成了利用SSO服務(wù)器做認(rèn)證。已知SSO類型有:CAS、SAML。

JWT模式: 它和Session模式的區(qū)別在于:

  1. 用戶會(huì)話信息不通過(guò)Cookie攜帶,而是放在Header里,這個(gè)信息我們叫做Token。

  2. Token里包含了加密的、不可篡改的當(dāng)前登錄用戶的信息,SESSIONID只是一個(gè)代號(hào),是沒(méi)有這個(gè)信息的。

  3. 服務(wù)端可以做到無(wú)狀態(tài),因?yàn)橛脩粜畔⒃赥oken里已經(jīng)存在,再也不需要維護(hù)Session了。

JWT模式可以使用SSO嗎?答案是可以的,但是有條件,在SSO認(rèn)證流程的最后一步——獲取用戶信息——的通信必須是confidential的。

對(duì)于Web app來(lái)說(shuō)只要它接入了SSO,獲取用戶信息的通信本來(lái)就是confidential的,它獲得用戶信息之后構(gòu)造JWT并返回就可以了。

對(duì)于User-agent app和Native app來(lái)說(shuō),需要為它做一個(gè)中介Web app,這個(gè)Web app和SSO通信,然后構(gòu)造JWT返回給User-agent app。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美尤物在线视频91| 美国欧洲日本韩国二本道| 日韩一区二区三区在线日| 樱井知香黑人一区二区| 久久机热频这里只精品| 亚洲欧美日韩国产自拍| 超薄丝袜足一区二区三区| 国产乱人伦精品一区二区三区四区| 成人精品日韩专区在线观看 | 午夜福利92在线观看| 小黄片大全欧美一区二区| 婷婷激情五月天丁香社区| 国产又爽又猛又粗又色对黄| 91日韩欧美国产视频| 亚洲男女性生活免费视频| 国产伦精品一一区二区三区高清版| 欧洲一区二区三区自拍天堂| 少妇一区二区三区精品 | 久草国产精品一区二区| 亚洲成人黄色一级大片| 99在线视频精品免费播放| 日韩免费av一区二区三区| 日本高清不卡一二三区| 日韩精品一区二区不卡| 东京热一二三区在线免| 大屁股肥臀熟女一区二区视频| 国产av天堂一区二区三区粉嫩| 熟女高潮一区二区三区| 一级片二级片欧美日韩| 又色又爽又无遮挡的视频| 欧美综合色婷婷欧美激情| 欧美在线视频一区观看| 最近最新中文字幕免费| 亚洲中文字幕视频在线播放| 亚洲欧美日韩熟女第一页| 色婷婷在线精品国自产拍| 久久亚洲国产视频三级黄| 激情图日韩精品中文字幕| 大香蕉伊人精品在线观看| 日韩色婷婷综合在线观看| 少妇熟女精品一区二区三区|