微服務統一認證,OAuth2 的認證流程

隨著微服務的興起,OAuth2也火了起來,由於其自身的優勢,儼然已成為微服務API服務接口安全防護的首選。

微服務統一認證,OAuth2 的認證流程

啥是 OAuth2

OAuth2(Open Authorization,開放授權)是OAuth的升級版本。OAuth 是一個開放標準,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯繫人列表),而無需將用戶名和密碼提供給第三方應用。

OAuth允許用戶提供一個令牌給第三方網站,一個令牌對應一個特定的第三方網站,同時該令牌只能在特定的時間內訪問特定的資源。

OAuth2 核心概念

OAuth 2.0 主要有4類角色:

  • resource owner:資源所有者,指終端的“用戶”(user)
  • resource server:資源服務器,即服務提供商存放受保護資源。訪問這些資源,需要獲得訪問令牌(access token)。
  • client:客戶端,代表向受保護資源進行資源請求的第三方應用程序。
  • authorization server: 授權服務器, 在驗證資源所有者並獲得授權成功後,將發放訪問令牌給客戶端。
微服務統一認證,OAuth2 的認證流程

  • 授權碼模式(authorization code)
  • 簡化模式(implicit)
  • 密碼模式(resource owner password credentials)
  • 客戶端模式(client credentials)

OAuth2 認證流程

微服務統一認證,OAuth2 的認證流程

  1. 用戶在第三方應用上點擊登錄,應用向認證服務器發送請求,說有用戶希望進行授權操作,同時說明自己是誰、用戶授權完成後的回調url。
  2. 認證服務器展示給用戶自己的授權界面。
  3. 用戶進行授權操作,認證服務器驗證成功後,生成一個授權編碼code,並跳轉到第三方的回調url。
  4. 第三方應用拿到code後,連同自己在平臺上的身份信息(ID密碼)發送給認證服務器,再一次進行驗證請求,說明自己的身份正確,並且用戶也已經授權我了,來換取訪問用戶資源的權限。
  5. 認證服務器對請求信息進行驗證,如果沒問題,就生成訪問資源服務器的令牌access_token,交給第三方應用。
  6. 第三方應用使用access_token向資源服務器請求資源。
  7. 資源服務器驗證access_token成功後返回響應資源。


分享到:


相關文章: