99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SSO單點(diǎn)登錄和OAuth2.0的區(qū)別和理解

Android編程精選 ? 來(lái)源:CSDN ? 作者:CSDN ? 2022-11-07 11:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

SSO是Single Sign On的縮寫,OAuth是Open Authority的縮寫,這兩者都是使用令牌的方式來(lái)代替用戶密碼訪問(wèn)應(yīng)用。流程上來(lái)說(shuō)他們非常相似,但概念上又十分不同。SSO大家應(yīng)該比較熟悉,它將登錄認(rèn)證和業(yè)務(wù)系統(tǒng)分離,使用獨(dú)立的登錄中心,實(shí)現(xiàn)了在登錄中心登錄后,所有相關(guān)的業(yè)務(wù)系統(tǒng)都能免登錄訪問(wèn)資源。

OAuth2.0原理可能比較陌生,但平時(shí)用的卻很多,比如訪問(wèn)某網(wǎng)站想留言又不想注冊(cè)時(shí)使用了微信授權(quán)。以上兩者,你在業(yè)務(wù)系統(tǒng)中都沒(méi)有賬號(hào)和密碼,賬號(hào)密碼是存放在登錄中心或微信服務(wù)器中的,這就是所謂的使用令牌代替賬號(hào)密碼訪問(wèn)應(yīng)用。

二、SSO

兩者有很多相似之處,下面我們來(lái)解釋一下這個(gè)過(guò)程。先來(lái)講解SSO,通過(guò)SSO對(duì)比OAuth2.0,才比較好理解OAuth2.0的原理。SSO的實(shí)現(xiàn)有很多框架,比如CAS框架,以下是CAS框架的官方流程圖。特別注意:SSO是一種思想,而CAS只是實(shí)現(xiàn)這種思想的一種框架而已

f7809178-5dc7-11ed-a3b6-dac502259ad0.png

上面的流程大概為:

用戶輸入網(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)交互即可

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

三、OAuth2.0

OAuth2.0有多種模式,這里講的是OAuth2.0授權(quán)碼模式,OAuth2.0的流程跟SSO差不多,在OAuth2中,有授權(quán)服務(wù)器、資源服務(wù)器、客戶端這樣幾個(gè)角色,當(dāng)我們用它來(lái)實(shí)現(xiàn)SSO的時(shí)候是不需要資源服務(wù)器這個(gè)角色的,有授權(quán)服務(wù)器和客戶端就夠了。

授權(quán)服務(wù)器當(dāng)然是用來(lái)做認(rèn)證的,客戶端就是各個(gè)應(yīng)用系統(tǒng),我們只需要登錄成功后拿到用戶信息以及用戶所擁有的權(quán)限即可

用戶在某網(wǎng)站上點(diǎn)擊使用微信授權(quán),這里的某網(wǎng)站就類似業(yè)務(wù)系統(tǒng),微信授權(quán)服務(wù)器就類似單點(diǎn)登錄系統(tǒng)

之后微信授權(quán)服務(wù)器返回一個(gè)確認(rèn)授權(quán)頁(yè)面,類似登錄界面,這個(gè)頁(yè)面當(dāng)然是微信的而不是業(yè)務(wù)系統(tǒng)的

用戶確認(rèn)授權(quán),類似填寫了賬號(hào)和密碼,提交后微信鑒權(quán)并返回一個(gè)ticket,并重定向業(yè)務(wù)系統(tǒng)。

業(yè)務(wù)系統(tǒng)帶上ticket訪問(wèn)微信服務(wù)器,微信服務(wù)器返回正式的token,業(yè)務(wù)系統(tǒng)就可以使用token獲取用戶信息了

簡(jiǎn)介一下OAuth2.0的四種模式:

授權(quán)碼(authorization-code)

授權(quán)碼(authorization code)方式,指的是第三方應(yīng)用先申請(qǐng)一個(gè)授權(quán)碼,然后再用該碼獲取令牌。這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應(yīng)用。授權(quán)碼通過(guò)前端傳送,令牌則是儲(chǔ)存在后端,而且所有與資源服務(wù)器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏。

隱藏式(implicit)

有些 Web 應(yīng)用是純前端應(yīng)用,沒(méi)有后端。這時(shí)就不能用上面的方式了,必須將令牌儲(chǔ)存在前端。RFC 6749 就規(guī)定了第二種方式,允許直接向前端頒發(fā)令牌。這種方式?jīng)]有授權(quán)碼這個(gè)中間步驟,所以稱為(授權(quán)碼)“隱藏式”(implicit)

密碼式(password)

如果你高度信任某個(gè)應(yīng)用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應(yīng)用。該應(yīng)用就使用你的密碼,申請(qǐng)令牌,這種方式稱為"密碼式"(password)。

客戶端憑證(client credentials)

最后一種方式是憑證式(client credentials),適用于沒(méi)有前端的命令行應(yīng)用,即在命令行下請(qǐng)求令牌。

簡(jiǎn)單流程

f961ef00-5dc7-11ed-a3b6-dac502259ad0.png

四、說(shuō)一下幾個(gè)名詞的區(qū)別

首先,SSO是一種思想,或者說(shuō)是一種解決方案,是抽象的,我們要做的就是按照它的這種思想去實(shí)現(xiàn)它

其次,OAuth2是用來(lái)允許用戶授權(quán)第三方應(yīng)用訪問(wèn)他在另一個(gè)服務(wù)器上的資源的一種協(xié)議,它不是用來(lái)做單點(diǎn)登錄的,但我們可以利用它來(lái)實(shí)現(xiàn)單點(diǎn)登錄。在本例實(shí)現(xiàn)SSO的過(guò)程中,受保護(hù)的資源就是用戶的信息(包括,用戶的基本信息,以及用戶所具有的權(quán)限),而我們想要訪問(wèn)這這一資源就需要用戶登錄并授權(quán),OAuth2服務(wù)端負(fù)責(zé)令牌的發(fā)放等操作,這令牌的生成我們采用JWT,也就是說(shuō)JWT是用來(lái)承載用戶的Access_Token的

最后,Spring Security、Shiro是用于安全訪問(wèn)的,用來(lái)做訪問(wèn)權(quán)限控制,都是一個(gè)用Java寫的框架

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9793

    瀏覽量

    87931
  • SSO
    SSO
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7603

原文標(biāo)題:SSO 單點(diǎn)登錄和 OAuth2.0 的區(qū)別和理解

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單點(diǎn)失效保護(hù)的15W電源管理方案

    芯片單點(diǎn)失效保護(hù)是一種關(guān)鍵的安全設(shè)計(jì)機(jī)制,旨在確保當(dāng)芯片的某一組件發(fā)生故障時(shí),系統(tǒng)不會(huì)完全崩潰或引發(fā)連鎖性失效,而是進(jìn)入預(yù)設(shè)的安全狀態(tài)。今天推薦的15W電源管理方案,主控芯片就自帶單點(diǎn)失效保護(hù)功能。接下來(lái),一起走進(jìn)U6218C+U7712電源方案組合!
    的頭像 發(fā)表于 07-08 13:44 ?266次閱讀
    帶<b class='flag-5'>單點(diǎn)</b>失效保護(hù)的15W電源管理方案

    復(fù)合機(jī)器人為什么要使用單點(diǎn)糾偏算法?

    復(fù)合機(jī)器人單點(diǎn)糾偏算法
    的頭像 發(fā)表于 04-20 14:59 ?230次閱讀
    復(fù)合機(jī)器人為什么要使用<b class='flag-5'>單點(diǎn)</b>糾偏算法?

    鴻蒙應(yīng)用元服務(wù)開(kāi)發(fā)-Account Kit配置登錄權(quán)限

    一、場(chǎng)景介紹 華為賬號(hào)登錄是基于OAuth 2.0協(xié)議標(biāo)準(zhǔn)和OpenID Connect協(xié)議標(biāo)準(zhǔn)構(gòu)建的OAuth2.0 授權(quán)登錄系統(tǒng),元服務(wù)
    發(fā)表于 04-15 16:03

    SSH遠(yuǎn)程登錄與控制教程

    SSH(Secure Shell)是一種安全通道協(xié)議,主要用來(lái)實(shí)現(xiàn)字符界面的遠(yuǎn)程登錄、遠(yuǎn)程 復(fù)制等功能。SSH 協(xié)議對(duì)通信雙方的數(shù)據(jù)傳輸進(jìn)行了加密處理,其中包括用戶登錄時(shí)輸入的用戶口令,SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。對(duì)數(shù)據(jù)進(jìn)行壓縮,加快傳輸速度。
    的頭像 發(fā)表于 04-09 13:43 ?2995次閱讀
    SSH遠(yuǎn)程<b class='flag-5'>登錄</b>與控制教程

    華為乾坤云管理解決方案2.0正式發(fā)布

    ”)、CypressTel賽柏特通信技術(shù)有限公司(以下簡(jiǎn)稱“CypressTel賽柏特”)等核心合作伙伴齊聚一堂,共同探討AI時(shí)代下云管理網(wǎng)絡(luò)技術(shù)的前沿趨勢(shì),并見(jiàn)證了華為乾坤云管理解決方案2.0的正式發(fā)布。
    的頭像 發(fā)表于 03-26 11:24 ?686次閱讀

    多點(diǎn)位移計(jì)與單點(diǎn)位移計(jì)的作用有什么不同?

    在現(xiàn)代工程測(cè)量中,位移計(jì)作為一種重要的監(jiān)測(cè)工具,廣泛應(yīng)用于各種結(jié)構(gòu)物的變形監(jiān)測(cè)。其中,多點(diǎn)位移計(jì)和單點(diǎn)位移計(jì)在功能和應(yīng)用范圍上存在顯著差異,這使得它們?cè)诓煌瑘?chǎng)景中發(fā)揮著獨(dú)特的作用。功能特點(diǎn)1.單點(diǎn)
    的頭像 發(fā)表于 02-24 14:14 ?464次閱讀
    多點(diǎn)位移計(jì)與<b class='flag-5'>單點(diǎn)</b>位移計(jì)的作用有什么不同?

    Java微服務(wù)中如何確保安全性?

    在Java微服務(wù)架構(gòu)中確保安全性,可以采取以下措施: 身份驗(yàn)證與授權(quán): 使用OAuth 2.0和OpenID Connect框架進(jìn)行身份驗(yàn)證和授權(quán)。OAuth2允許用戶在不分享憑證的情況下授權(quán)第三方
    的頭像 發(fā)表于 01-02 15:21 ?664次閱讀

    如何遠(yuǎn)程登錄路由器

    當(dāng)路由器放置在機(jī)房、弱電箱等不方便直接操作的位置,或當(dāng)網(wǎng)絡(luò)出現(xiàn)故障或者需要遠(yuǎn)程協(xié)助時(shí)遠(yuǎn)程登錄路由器可以極大的解決問(wèn),本期重點(diǎn)說(shuō)明遠(yuǎn)程登錄路由器的方法,供各位參考使用: 首先 ,需要確保家里的路由器
    的頭像 發(fā)表于 12-18 12:01 ?795次閱讀
    如何遠(yuǎn)程<b class='flag-5'>登錄</b>路由器

    AD9814如何與AGND和DGND連接?分別單點(diǎn)接地嗎?

    需要一個(gè)單獨(dú)的地平面,即除了AGND和DGND,還需要一個(gè)AD_GND。那這個(gè)AD_GND如何與AGND和DGND連接?分別單點(diǎn)接地嗎? 2. single理解為“同一個(gè)”,強(qiáng)調(diào)AD9814下面不分
    發(fā)表于 12-05 06:33

    單點(diǎn)位移計(jì):從原理到應(yīng)用,一文讀懂!

    在工程、材料乃至地質(zhì)監(jiān)測(cè)領(lǐng)域,每一個(gè)微小的變動(dòng)都可能蘊(yùn)含著重要的信息。如何捕捉這些細(xì)微之處呢?答案就藏在一種名為“單點(diǎn)位移計(jì)”的神奇儀器中。今天,就讓我們一起走進(jìn)單點(diǎn)位移計(jì)的世界,探索它的工作原理
    的頭像 發(fā)表于 11-25 15:54 ?755次閱讀
    <b class='flag-5'>單點(diǎn)</b>位移計(jì):從原理到應(yīng)用,一文讀懂!

    HDMI2.0和HDMI2.1有沒(méi)有區(qū)別?

    HDMI 2.0 VS HDMI 2.1 主要區(qū)別 帶寬 HDMI 2.0:支持18Gbps的帶寬,能夠傳輸4K@60Hz的視頻信號(hào)。 HDMI 2.1:支持48Gbps的帶寬,能夠傳輸
    的頭像 發(fā)表于 11-01 15:03 ?3954次閱讀

    多點(diǎn)觸控和單點(diǎn)觸控哪個(gè)好

    多點(diǎn)觸控和單點(diǎn)觸控各有其優(yōu)缺點(diǎn),具體哪個(gè)更好取決于應(yīng)用場(chǎng)景和用戶需求。以下是對(duì)兩者的詳細(xì)比較:
    的頭像 發(fā)表于 10-21 15:36 ?1439次閱讀

    多點(diǎn)觸控和單點(diǎn)觸控區(qū)別

     多點(diǎn)觸控和單點(diǎn)觸控是觸摸屏技術(shù)的兩種主要類型,它們?cè)诠δ堋?yīng)用場(chǎng)景以及用戶體驗(yàn)等方面存在顯著差異。以下是對(duì)這兩種觸控技術(shù)的詳細(xì)比較:
    的頭像 發(fā)表于 10-21 15:35 ?3487次閱讀

    交換機(jī)如何配置SSH遠(yuǎn)程登錄

    從事網(wǎng)絡(luò)運(yùn)維工作的小伙伴們都知道,在交換機(jī)正式上線時(shí),必須完成配置SSH遠(yuǎn)程登錄,這樣做目的是為了日后,維護(hù)方便,不需要每次登錄設(shè)備都要跑到機(jī)房,這樣既不現(xiàn)實(shí),又費(fèi)事。
    的頭像 發(fā)表于 10-10 14:33 ?2471次閱讀
    交換機(jī)如何配置SSH遠(yuǎn)程<b class='flag-5'>登錄</b>

    HDMI 2.0與HDMI 2.1有什么區(qū)別

    HDMI 2.0與HDMI 2.1是高清多媒體接口(High-Definition Multimedia Interface)的兩個(gè)不同版本,它們?cè)趲?、傳輸速度、支持的視頻格式、顯示效果以及新技術(shù)支持等方面存在顯著差異。以下是對(duì)兩者區(qū)別的詳細(xì)分析,旨在提供全面且深入的
    的頭像 發(fā)表于 07-25 18:15 ?5.3w次閱讀