91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBootSecurity中OAuth2.0的介紹是怎樣的

發布時間:2021-09-28 09:35:17 來源:億速云 閱讀:97 作者:柒染 欄目:大數據

SpringBootSecurity中OAuth2.0的介紹是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

登錄總結

security本身已經實現的比較完善的安全處理,加上JWT的驗證方式,可以實現一個理想的登錄功能。

我們來看登錄,給用戶一個賬號,驗證有效后登錄成功,這一步是任何系統都無法避免的。無論這個賬號只能登錄一個系統還是像支付寶賬號一樣登錄多個app,無論賬號是用戶名密碼,還是手機驗證碼,或者郵箱等其他形式,可以說認證這一步是最基礎的,無法避免。

登錄成功后,通過授權可以讓用戶訪問一些登錄前無法訪問的頁面或者接口,而且無論session或者token,其實都是有有效期的,過了有效期就需要重新登錄。從這種形式上看,授權包含了更多的場景,不僅是內部已經登錄的用戶,還有可能是第三方的應用,或者兩個系統之間的信息交換等等。而且微服務的開發模式下,服務越來越多,可以被授權的內容也越來越多,如果沒有統一的方式來管理這些接口資源的授權,會非常麻煩。因此,系統針對所有的訪問需要有統一的認證和授權的機制,而 OAuth3.0 是我們實現這種統一認證授權非常好的一個選擇。

OAuth3.0介紹

OAuth 2.0 是目前最流行的授權機制,用來授權第三方應用,獲取用戶數據。最經典的場景就是我們使用QQ來進行第三方登錄的時候,選擇可以訪問用戶的哪些信息。關于OAuth 2.0的介紹,推薦讀取阮一峰的三篇介紹文章,地址是:

  • OAuth 2.0 的一個簡單解釋

  • OAuth 2.0 的四種方式

  • GitHub OAuth 第三方登錄示例教程

這三篇文章是一個非常好和非常詳細的OAuth3.0的入門。

關于OAuth3.0的理解,用來授權第三方應用,以前總是理解不到位的原因是,我沒有站在不同的角度去分析思考。比如在使用QQ進行第三方登錄時,是我們登錄的軟件需要獲取我們qq賬號的部分用戶信息,因此需要騰訊的認證授權,我們需要在一鍵登錄(授權)的時候,登錄QQ,點擊同意即可。

而如果我們作為開發人員,去設計一個OAuth3.0授權功能的時候,需要從開發人員角度去思考哪部分是我們要完成的功能,比如上面的QQ第三方登錄,首先QQ軟件是我們開發人員開發的,第三方應用有一個我們軟件的QQ賬號,第三方用戶想在自己的軟件上面展示第三方的QQ賬號的部分用戶信息,需要來我們的授權服務申請,同意后才能查詢我們開發的軟件中的用戶信息,因此我們要開發的是一個基本的QQ服務(資源服務),一個授權服務,并且第三方可以在我方注冊賬號,或者可以給第三方分配賬號。

關于第三方應用,可以是其它公司的系統,也可以本公司架構內的其它服務,大家可以根據阮一峰的文章,參考開發人員的任務屬于文章中的哪些內容。這樣,對開發OAuth3.0和使用OAuth3.0會有清晰的區分和理解。

SSO單點登錄

單點登錄(SingleSignOn,SSO),就是通過用戶的一次性鑒別登錄。當用戶在身份認證服務器上登錄一次以后,即可獲得訪問單點登錄系統中其他關聯系統和應用軟件的權限,同時這種實現是不需要管理員對用戶的登錄狀態或其他信息進行修改的,這意味著在多個應用系統中,用戶只需一次登錄就可以訪問所有相互信任的應用系統。這種方式減少了由登錄產生的時間消耗,輔助了用戶管理,是目前比較流行的。

當用戶第一次訪問應用系統A的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之后會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統B和應用系統C了。

從上面的介紹可以看得出,單點登錄需要的正是一個共享的授權和驗證系統,也就是說SSO是可以使用OAuth3.0機制去設計實現的。但是SSO和OAuth3.0也有一點區別,sso和oauth3.0在應用場景上的區別在于,使用sso的各個系統(子模塊)之間是互相信任的,通常是一個廠家的各個軟件產品,或者是一個產品的不同模塊系統。使用oauth3.0的各個應用大部分之間是互相不信任的,通常是不同廠家之間的賬號共享。OAuth3.0 解決的是服務提供方(微信等)給第三方應用授權的問題,而SSO解決的是大型系統中各個子系統如何共享登陸狀態的問題(比如你登錄了百度首頁,那么你進入百度百科,百度貼吧,百度音樂等服務的時候都不需要重新登錄)。

Spring Cloud Security

Spring Cloud Security組件可以理解為,springboot security加上OAuth3.0的整合,可以實現微服務系統中sso單點登錄功能,和第三方授權功能,是一個強大的權限組件。關于springboot2.1.x版本對應使用的springcloud的security組件的官方文檔如下:

  • https://cloud.spring.io/spring-cloud-static/spring-cloud-security/2.1.4.RELEASE/single/spring-cloud-security.html

文檔的目錄如下:

SpringBootSecurity中OAuth2.0的介紹是怎樣的

從目錄上看,Spring Cloud Security組件主要的功能也是sso和資源認證授權,后面的內容主要用來學習Spring Cloud Security。

看完上述內容,你們掌握SpringBootSecurity中OAuth2.0的介紹是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大石桥市| 望奎县| 延长县| 长沙市| 凯里市| 民权县| 乐陵市| 定襄县| 兰州市| 沙河市| 平塘县| 镶黄旗| 璧山县| 莫力| 平阴县| 威远县| 宝坻区| 黑水县| 东光县| 武宁县| 内乡县| 宜黄县| 大悟县| 卢氏县| 沂源县| 讷河市| 新宾| 塔河县| 石景山区| 静海县| 浪卡子县| 潮安县| 永修县| 大安市| 绥滨县| 疏勒县| 罗定市| 柘城县| 金平| 即墨市| 县级市|