【程式設計開發】之 OAuth2

王廷雲的部落格發表於2020-10-18

一、什麼是 OAuth2


1、OAuth2正式定義

在這裡插入圖片描述

2、令牌的核心

在這裡插入圖片描述

3、OAuth2的歷史

在這裡插入圖片描述

4、OAuth2的優勢

在這裡插入圖片描述

5、OAuth2的不足

在這裡插入圖片描述

6、Auth2涉及的角色

在這裡插入圖片描述

7、OAuth2術語

在這裡插入圖片描述

8、OAuth2 令牌的型別

在這裡插入圖片描述

9、OAuth2的誤解

在這裡插入圖片描述

總結

在這裡插入圖片描述


二、OAuth2 的使用場景


1、OAuth2 解決的問題

  • OAuth2 是針對特定問題的一種解決方案
  • OAuth2 主要解決兩個問題:
    • 開發系統間的授權問題
    • 分散式微服務的安全

2、開發系統間的授權問題

比如:使用者想要在雲沖印服務上列印照片,雲沖印服務需要訪問雲端儲存服務上的資源

在這裡插入圖片描述

我們知道圖片資源的擁有者為使用者,使用者可以使用密碼登入訪問,而列印服務商是沒有許可權進行訪問列印圖片的:

在這裡插入圖片描述

要解決這個問題我們有一下方法:

方式一:使用者名稱密碼複製

在這裡插入圖片描述

但這種方式會造成使用者的密碼洩露,顯示是行不通的。

方式二:使用通用開發者key

在這裡插入圖片描述

但這種方式只適用於合作商或者授信的不同業務部門之間,比如阿里巴巴和百度合作商,但問題是如果你是創業公司,想要和百度合作顯然是不行的,因為公司實力差距大不對等。

方式三:頒發令牌

在這裡插入圖片描述

接近 OAuth2 方式,需要考慮如何管理令牌、頒發令牌、吊銷令牌,需要統一的協議,因此就有了OAuth2協議。所以解決授權問題的最佳方式就是使用令牌來授權。

3、分散式微服務安全

除了開放系統授權外,OAuth2 還可以應用於現代分散式微服務安全

傳統單塊應用的安全

在這裡插入圖片描述

現代微服務安全

  • 現代微服務中系統微服務化以及應用的形態和裝置型別增多,不能用傳統的登入方式;
  • 核心的技術不是使用者名稱和密碼,而是 token,由 AuthServer 頒發 token,使用者使用 token 進行登入。

在這裡插入圖片描述

典型的 OAuth2 應用場景

在這裡插入圖片描述

4、總結

在這裡插入圖片描述

說白了 OAuth2 就是一種解決方案:一種令牌機制,按照一定規則生成字串,字串中可包含使用者資訊。而具體的生產規則可以使用 JWT 工具來生成,OAuth2 僅僅提供這種解決方案而已。

相關文章