免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

SSO 單點登錄和 OAuth2.0 有何區別?

:2025年01月24日 Java后端編程
分享到:

在微服務時代,單點登錄(SSO)和 OAuth2.0 等身份驗證協議是實現無縫切換和保持登錄狀態的有效方法。SSO 單點登錄方案有基于會話和基于令牌兩種實現方式,它們各有優缺點。

在微服務時代,用戶需要在多個應用程序和服務之間進行無縫切換,同時保持其登錄狀態。我們可以通過單點登錄(SSO)或者 OAuth2.0 等身份驗證和授權協議來實現這一目標。

1 單點登錄(SSO)

單點登錄(SSO)是一種身份驗證方法,允許用戶在一個應用程序或服務中登錄后,無需再次輸入憑據即可訪問其他相關應用程序或服務。這種方法通過將登錄認證和業務系統分離,使用獨立的登錄中心,實現了在登錄中心登錄后,所有相關的業務系統都能免登錄訪問資源。

SSO 單點登錄的方案實際上有很多種:

  • 基于會話的單點登錄(Session-Based SSO):

這是最早和最簡單的單點登錄實現方式。當用戶在第一個應用程序中登錄時,服務器會創建一個會話,并將該會話 ID 存儲在用戶的瀏覽器中(通常是通過 Cookie)。當用戶訪問其他應用程序時,瀏覽器會發送該會話 ID,從而允許服務器驗證用戶的身份。此方法的缺點是它依賴于瀏覽器和會話狀態,對于分布式或者微服務系統而言,可能需要在服務端做會話共享,但是服務端會話共享效率比較低,這不是一個好的方案。對這種方案感興趣的話可以看看松哥之前發的 Spring Session 會話共享的文章。

  • 基于令牌的單點登錄(Token-Based SSO):

這種方法通常使用 JSON Web Tokens(JWT)或類似的令牌格式。當用戶在第一個應用程序中登錄時,服務器會生成一個包含用戶信息的令牌,并將其發送給客戶端(通常是瀏覽器)??蛻舳藭鎯@個令牌,并在訪問其他應用程序時將其作為請求的一部分發送。應用程序會驗證令牌的有效性,并據此授予用戶訪問權限。這種方法更加安全和靈活,因為它不依賴于會話狀態,可以在多個域和服務器之間工作。這種方案實際上有很多變種,但是目前大部分的分布式項目單點登錄基本上都是這種方案,或者是基于這種方案衍生出來的變種方案。

  • 基于 OAuth 的單點登錄(OAuth-Based SSO):

OAuth 是一個開放標準,允許用戶授權第三方應用程序訪問其存儲在另一個服務提供商上的信息,而無需將用戶名和密碼提供給該第三方應用程序。OAuth2.0 是最常用的版本,它支持多種授權流程,包括授權碼流程、隱式流程和客戶端憑據流程。

在單點登錄的上下文中,OAuth 可以用作一個中介,用戶在一個“授權服務器”上登錄,并獲得一個訪問令牌,該令牌可以用于訪問其他“資源服務器”上的資源。OAuth 提供了豐富的功能和安全性,但它也相對復雜,需要仔細配置和管理。松哥之前也專門寫過 OAuth2 相關的教程,大家在公眾號后臺回復 oauth2 有鏈接。

  • 基于SAML的單點登錄(SAML-Based SSO):

SAML(Security Assertion Markup Language)是一種 XML 框架,用于在不同安全域之間交換身份驗證和授權信息。SAML 允許一個實體(通常是身份提供商或 IdP)向另一個實體(通常是服務提供商或 SP)發送安全斷言,證明用戶已經成功登錄。SAML 通常與 OAuth 結合使用,以提供更強大和靈活的單點登錄解決方案。但是 SAML 比較復雜,所以維護起來可能會有壓力。

回到具體的生產環境,選擇哪種單點登錄方案取決于具體的需求和環境。對于是分布式但是又比較簡單的內部應用程序,基于會話的 SSO 可能就足夠了。但是大型分布式系統,基于令牌或 OAuth 的 SSO 可能更合適。小伙伴還是要結合自己的實際項目去選擇。

2 OAuth2.0

OAuth2.0 是一種開放授權協議,允許用戶授權第三方應用程序訪問其存儲在服務提供商(如QQ、WeiXin、抖音等)上的特定資源。與 SSO 類似,OAuth2.0 也使用了令牌的概念來實現身份驗證和授權。

OAuth2.0 定義了四種授權模式,分別是:

  • 授權碼模式

  • 隱式模式

  • 密碼模式

  • 客戶端模式

其中,授權碼模式是最常用的一種模式,適用于那些有后端的 Web 應用程序。在這種模式下,第三方應用程序首先向授權服務器申請一個授權碼,然后使用這個授權碼向授權服務器請求訪問令牌。一旦獲得訪問令牌,第三方應用程序就可以使用這個令牌訪問用戶授權的資源。

注意,OAuth2.0 并不直接實現單點登錄功能。它主要關注授權和訪問控制,允許用戶授權第三方應用程序訪問其資源。然而,通過與其他技術(如SSO)結合使用,OAuth2.0 可以實現單點登錄的效果。

目前來說,如果你想在項目中使用 OAuth2 的話,主要有如下幾種主流框架:

  1. Spring Security OAuth:Spring Security OAuth 是 Spring框架的一個擴展,提供了對 OAuth2 協議的全面支持。它允許開發者在 Spring 應用程序中輕松實現 OAuth2 認證和授權流程,包括授權服務器、資源服務器和客戶端應用程序的配置。

  2. Keycloak:Keycloak 是一個開源的身份和訪問管理解決方案,它支持 OAuth2、OpenID Connect 和其他身份協議。Keycloak 提供了一個易于使用的管理界面,允許開發者配置和管理 OAuth2 相關的設置,如客戶端、用戶和角色等。

  3. Apache Oltu:Apache Oltu 是一個實現了 OAuth2 協議的 Java 庫,它提供了對 OAuth2 流程的抽象和簡化。Oltu 可以幫助開發者快速構建 OAuth2 客戶端和服務器組件,并支持多種授權流程,如授權碼流程、隱式流程等。微信搜索公眾號:架構師指南,回復:架構師 領取資料 。

這些框架和庫提供了 OAuth2 協議的完整實現,包括令牌生成、驗證、刷新、撤銷等。它們簡化了 OAuth2 流程的集成,使得開發者能夠專注于業務邏輯的實現,而無需過多關注底層的認證和授權細節。

3 SSO 與 OAuth2.0

首先,SSO 主要關注用戶在多個應用程序和服務之間的無縫切換和保持登錄狀態的問題。它通過獨立的登錄中心來實現這一目標,使用戶只需在一個地方輸入憑據即可訪問所有相關應用程序和服務。而 OAuth2.0 則主要關注授權和訪問控制的問題,允許用戶授權第三方應用程序訪問其存儲在服務提供商上的特定資源。

其次,SSO 通常只涉及用戶、登錄中心和業務系統之間的交互,而 OAuth2.0 則涉及用戶、第三方應用程序、授權服務器和資源服務器之間的交互。這使得 OAuth2.0 更加復雜和靈活,適用于多種場景和應用程序類型。

·················END·················

原文來源:https://mp.weixin.qq.com/s/aKTeFCfJ18Icv5uBHzPWMQ

[我要糾錯]
[ 編輯:宋聰喬 &發表于江蘇 ]
關鍵詞: 服務 時代 用戶 要在 多個

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:SSO 單點登錄和 OAuth2.0 有何區別?

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 91桃色污 | 亚洲三级国产 | 国产小视频福利 | 国产精品久久毛片蜜月 | 亚洲日韩中文第一精品 | 国产 欧美 日韩在线 | 一本大道道香蕉免费 | 黄色免费网站视频 | 亚洲欧美另类在线观看 | 成人免费视屏 | 国产婷婷综合丁香亚洲欧洲 | 免费观看成人久久网免费观看 | 久久久久一区二区三区 | 最近免费中文字幕视频高清在线看 | 欧美黑人三级 | 天天草狠狠干 | 欧美黄网站免费观看 | 韩剧伦理在线 | 国产在线视频www色 国产在线视频国产永久视频 | 乡村乱肉情欲小说 | 久久免费精品视频 | 超级碰在线 | 国产高清在线免费视频 | 日本黄色片三级 | 激情综合激情 | 日韩精品在线看 | 欧美精品成人一区二区视频一 | 欧美性猛交xxxxx免费看 | 日本国产最新一区二区三区 | 久久国产亚洲欧美日韩精品 | 国产a∨一区二区三区香蕉小说 | 美女黄色影院 | 亚洲日本视频 | 高清不卡一区二区 | 久精品在线观看 | 小优视频在线观看网 | 国产 欧美 日韩 在线 | 九九成人| 国产在线拍揄自揄视频不卡99 | 精品400部自拍视频在线播放 | 免费激情网址 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼