本文主要列舉在如今前后端分離、手機(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)看一下它有幾種模式:
名詞定義:
Client owner:
User context:
Client type:
App type:
pixabayhttps://www./sites/73237.html wallhavenhttps://www./sites/73236.html 僅做認(rèn)證的模式
詳細(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ū)別在于:
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。 |
|
來(lái)自: 昵稱65038308 > 《前端技術(shù)CSS/html》