偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

阿里終面:說說OAuth2.0 與 單點(diǎn)登錄的區(qū)別?

開發(fā) 前端
Oauth2.0和單點(diǎn)登錄的區(qū)別需要理解清楚,相對(duì)來說Oauth2.0實(shí)現(xiàn)單點(diǎn)登錄更加簡(jiǎn)單,CAS雖然能夠?qū)崿F(xiàn)單點(diǎn)登錄,但是服務(wù)部署和配置更加復(fù)雜,不易于上手,當(dāng)然目前也有很多的系統(tǒng)在使用CAS,在選擇的時(shí)候開發(fā)者根據(jù)這些區(qū)別和復(fù)雜程度去決策。

SSO是Single Sign On的縮寫,OAuth是Open Authority的縮寫,這兩者都是使用令牌的方式來代替用戶密碼訪問應(yīng)用。流程上來說他們非常相似,但概念上又十分不同。很多人會(huì)將其混為一談,其實(shí)這兩個(gè)還是有些區(qū)別的。

對(duì)于OAuth2.0相關(guān)內(nèi)容在Spring Cloud Alibaba 實(shí)戰(zhàn)中結(jié)合實(shí)戰(zhàn)項(xiàng)目源碼從零搭建有著詳細(xì)的介紹,如下圖:

圖片

?什么是單點(diǎn)登錄

簡(jiǎn)單的說就是在多個(gè)應(yīng)用的系統(tǒng)中,用戶只需要登錄一次就可以訪問權(quán)限范圍內(nèi)的所有應(yīng)用子系統(tǒng),同樣的注銷也只需要注銷一次。

比如百度這個(gè)網(wǎng)站,用戶只要登錄了百度的官網(wǎng),那么對(duì)于百度百科、百度知道、百度貼吧等網(wǎng)站都是處于登錄狀態(tài),這就是一個(gè)典型的單點(diǎn)登錄的例子。

單點(diǎn)登錄和Oauth2.0的區(qū)別

雖然Oauth2.0能夠?qū)崿F(xiàn)單點(diǎn)登錄,但是在一些方面還是有些區(qū)別的,如下:

  • 信任角度:Oauth2.0授權(quán)服務(wù)端和第三方客戶端不屬于一個(gè)互相信任的應(yīng)用群,比如微信和第三方,這就不是一個(gè)公司的產(chǎn)品;然而單點(diǎn)登錄的服務(wù)端和接入的客戶端都在同一個(gè)相互信任的應(yīng)用系統(tǒng)中,比如百度官網(wǎng)、百度百科,這都是一個(gè)公司的產(chǎn)品
  • 資源角度:OAuth2.0授權(quán)主要是讓用戶自行決定——“我”在OAuth2.0服務(wù)提供方的個(gè)人資源是否允許第三方應(yīng)用訪問;而單點(diǎn)登錄的資源都在客戶端這邊,單點(diǎn)登錄的服務(wù)端主要用于登錄,以及管理用戶在各個(gè)子系統(tǒng)的權(quán)限信息。
  • 流程角度:OAuth2.0授權(quán)的時(shí)候,第三方客戶端需要拿預(yù)先“商量”好的密碼去獲取Access Token;而單點(diǎn)登錄則不需要。

Oauth2.0完全可以實(shí)現(xiàn)單點(diǎn)登錄,但是更加側(cè)重于對(duì)于己方資源的保護(hù),了解了這兩種的區(qū)別才能正確的選擇

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

Oauth2.0實(shí)現(xiàn)單點(diǎn)登錄非常簡(jiǎn)單,比如微服務(wù)下的各個(gè)子系統(tǒng)接入Oauth2.0的認(rèn)證服務(wù),用戶從認(rèn)證服務(wù)獲取token后,直接通過網(wǎng)關(guān)轉(zhuǎn)發(fā)給下游子系統(tǒng)則可以實(shí)現(xiàn)只需要一次登錄

其實(shí)除了Oauth2.0以外,還有很多框架能夠?qū)崿F(xiàn)單點(diǎn)登錄,比較經(jīng)典則是CAS框架

以下是CAS框架的官方流程圖。特別注意:SSO是一種思想,而CAS只是實(shí)現(xiàn)這種思想的一種框架而已

圖片

上面的流程大概為:

  • 用戶輸入網(wǎng)址進(jìn)入業(yè)務(wù)系統(tǒng)Protected App,系統(tǒng)發(fā)現(xiàn)用戶未登錄,將用戶重定向到單點(diǎn)登錄系統(tǒng)CAS Server,并帶上自身地址service參數(shù)。
  • 用戶瀏覽器重定向到單點(diǎn)登錄系統(tǒng),系統(tǒng)檢查該用戶是否登錄,這是SSO(這里是CAS)系統(tǒng)的第一個(gè)接口,該接口如果用戶未登錄,則將用戶重定向到登錄界面,如果已登錄,則設(shè)置全局session,并重定向到業(yè)務(wù)系統(tǒng)。
  • 用戶填寫密碼后提交登錄,注意此時(shí)的登錄界面是SSO系統(tǒng)提供的,只有SSO系統(tǒng)保存了用戶的密碼
  • SSO系統(tǒng)驗(yàn)證密碼是否正確,若正確則重定向到業(yè)務(wù)系統(tǒng),并帶上SSO系統(tǒng)的簽發(fā)的ticket。
  • 瀏覽器重定向到業(yè)務(wù)系統(tǒng)的登錄接口,這個(gè)登錄接口是不需要密碼的,而是帶上SSO的ticket,業(yè)務(wù)系統(tǒng)拿著ticket請(qǐng)求SSO系統(tǒng),獲取用戶信息。并設(shè)置局部session,表示登錄成功返回給瀏覽器sessionId(tomcat中叫JSESSIONID)。
  • 之后所有的交互用sessionId與業(yè)務(wù)系統(tǒng)交互即可。

整個(gè)流程還是相對(duì)比較復(fù)雜的,當(dāng)然CAS這個(gè)框架的配置也是相對(duì)比較復(fù)雜,了解過的人都想放棄,關(guān)于CAS如何去搭建,在后面會(huì)單獨(dú)介紹。

最常見的例子是,我們打開淘寶APP,首頁就會(huì)有天貓、聚劃算等服務(wù)的鏈接,當(dāng)你點(diǎn)擊以后就直接跳過去了,并沒有讓你再登錄一次。

圖片

總結(jié)

Oauth2.0和單點(diǎn)登錄的區(qū)別需要理解清楚,相對(duì)來說Oauth2.0實(shí)現(xiàn)單點(diǎn)登錄更加簡(jiǎn)單,CAS雖然能夠?qū)崿F(xiàn)單點(diǎn)登錄,但是服務(wù)部署和配置更加復(fù)雜,不易于上手,當(dāng)然目前也有很多的系統(tǒng)在使用CAS,在選擇的時(shí)候開發(fā)者根據(jù)這些區(qū)別和復(fù)雜程度去決策。

責(zé)任編輯:武曉燕 來源: 碼猿技術(shù)專欄
相關(guān)推薦

2025-04-11 05:55:00

2021-08-02 06:49:46

OIDC認(rèn)證協(xié)議

2015-03-21 06:41:50

oauth2.0監(jiān)控寶

2022-03-16 00:07:55

OAuth2授權(quán)框架

2021-11-19 06:50:17

OAuth協(xié)議授權(quán)

2024-12-06 07:00:00

2021-03-24 09:23:45

代碼阿里應(yīng)用分層

2024-03-20 10:53:15

2020-12-04 06:35:20

TCPUDP阿里

2023-08-29 08:00:38

2024-09-11 08:37:39

2024-03-01 11:33:31

2025-01-14 10:28:34

業(yè)務(wù)主表讀寫冷熱分離

2022-01-24 08:19:19

業(yè)務(wù)CRUD場(chǎng)景

2024-10-14 16:49:06

2022-09-09 10:15:06

OAuthJava

2021-07-12 07:08:53

OAuth 2.0授權(quán)協(xié)議

2021-07-19 09:27:42

SSD內(nèi)存Linux

2025-05-12 01:55:00

MySQL存儲(chǔ)數(shù)據(jù)

2021-03-16 16:35:39

網(wǎng)關(guān)Java代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)