国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
多種認(rèn)證、授權(quán)模型的比較
本文主要列舉在如今前后端分離、手機(jī)App大行其道的現(xiàn)狀下,用戶認(rèn)證、授權(quán)的幾種做法及對比。PS. 本文假設(shè)你已經(jīng)理解了各種認(rèn)證模式的具體細(xì)節(jié)。
OAuth2.0的幾種模式
OAuth2.0是一個(gè)被廣泛采用的事實(shí)標(biāo)準(zhǔn),它同時(shí)包含認(rèn)證和授權(quán)兩種模式,我們來看一下它有幾種模式:
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開發(fā)者/廠商和Resource Server是同一個(gè)人/廠商。
Third-party: 第三方client,即client開發(fā)者/廠商和Resource Server不是同一個(gè)人/廠商。OAuth 2.0主要解決的是第三方client的授權(quá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的通信是公開進(jìn)行的。
App type:
web app: 這類App的代碼在服務(wù)器上執(zhí)行,用戶通過User-Agent(瀏覽器)下載App渲染的html頁面,并與之交互。比如,傳統(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.wode007.com/sites/73237.html wallhavenhttps://www.wode007.com/sites/73236.html
僅做認(rèn)證的模式
ModeClient belongUser ContextApp type
SessionFirst-partyYWeb app
SSOFirst-partyYWeb app
JWTFirst-partyYWeb app, User-agent app, Native app
詳細(xì)說明以上三種模式:
Session模式: 就是我們傳統(tǒng)的Web app所使用的技術(shù),用戶輸入賬號(hào)和密碼登錄系統(tǒng),服務(wù)端返回一個(gè)名字叫做SESSIONID的Cookie,之后User-agent和服務(wù)端每次交互都會(huì)攜帶這個(gè)Cookie,通過這種方式來做到用戶登錄狀態(tài)的保持。
SSO模式: 其實(shí)是Session模式的變種,只不過把認(rèn)證從Session模式的本地認(rèn)證變成了利用SSO服務(wù)器做認(rèn)證。已知SSO類型有:CAS、SAML。
JWT模式: 它和Session模式的區(qū)別在于:
用戶會(huì)話信息不通過Cookie攜帶,而是放在Header里,這個(gè)信息我們叫做Token。
Token里包含了加密的、不可篡改的當(dāng)前登錄用戶的信息,SESSIONID只是一個(gè)代號(hào),是沒有這個(gè)信息的。
服務(wù)端可以做到無狀態(tài),因?yàn)橛脩粜畔⒃赥oken里已經(jīng)存在,再也不需要維護(hù)Session了。
JWT模式可以使用SSO嗎?答案是可以的,但是有條件,在SSO認(rèn)證流程的最后一步——獲取用戶信息——的通信必須是confidential的。
對于Web app來說只要它接入了SSO,獲取用戶信息的通信本來就是confidential的,它獲得用戶信息之后構(gòu)造JWT并返回就可以了。
對于User-agent app和Native app來說,需要為它做一個(gè)中介Web app,這個(gè)Web app和SSO通信,然后構(gòu)造JWT返回給User-agent app。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
微服務(wù)系統(tǒng)之認(rèn)證管理詳解
認(rèn)證授權(quán)基礎(chǔ)
徹底搞定前后端所有鑒權(quán)方案,讓你不再迷惘
常見的服務(wù)器鑒權(quán)方式
微服務(wù)架構(gòu)下的統(tǒng)一身份認(rèn)證和授權(quán)
第 82 天:Python Web 開發(fā)之 JWT 簡介
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服