身份認證系統OAuth2的四種模式

一、理解什么是OAuth2

是開放授權的一個標準,允許用戶授權B應用不提供帳號密碼的方式去訪問該用戶在A應用服務器上的某些特定資源。
例子:咕咚app通過微信號方式登錄,獲取到用戶的微信名和微信頭像等資料。

二、OAuth2四種授權模式

2.1 授權碼模式

授權碼模式(authorization code)是功能最完整、流程最嚴密的授權模式,code保證了token的安全性,即使code被攔截,由于沒有app_secret,也是無法通過code獲得token的。

2.1.1 角色行為與功能
  • 資源所有者
    只需要允許或拒絕第三方應用獲得授權

  • 第三方應用
    申請成為資源服務器的第三方應用
    獲取資源服務器提供的資源

  • 授權服務器
    提供授權許可code、令牌token等

  • 資源服務器
    提供給第三方應用注冊接口,需要提供給第三方應用app_id和app_secret
    提供給第三方應用開放資源的接口

2.1.2 授權碼模式授權方式順序圖
OAuth2.png

2.2隱式授權模式/簡化模式

和授權碼模式類似,只不過少了獲取code的步驟,是直接獲取令牌token的,適用于公開的瀏覽器單頁應用,令牌直接從授權服務器返回,不支持刷新令牌,且沒有code安全保證,令牌容易因為被攔截竊聽而泄露。

2.3密碼模式

使用用戶名/密碼作為授權方式從授權服務器上獲取令牌,一般不支持刷新令牌。

2.4客戶端憑證模式

一般用于資源服務器是應用的一個后端模塊,客戶端向認證服務器驗證身份來獲取令牌。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容