OAuth2.0的四種授權模式(轉)


1. OAuth2簡易實戰(一)-四種模式

1.1. 隱式授權模式(Implicit Grant)

 

  •  第一步:用戶訪問頁面時,重定向到認證服務器。
  •  第二步:認證服務器給用戶一個認證頁面,等待用戶授權。
  •  第三步:用戶授權,認證服務器想應用頁面返回Token
  •  第四步:驗證Token,訪問真正的資源頁面

 

 

1.2. 授權碼授權模式(Authorization code Grant)

 

  •  第一步:用戶訪問頁面
  •  第二步:訪問的頁面將請求重定向到認證服務器
  •  第三步:認證服務器向用戶展示授權頁面,等待用戶授權
  •  第四步:用戶授權,認證服務器生成一個code和帶上client_id發送給應用服務器
  •          然后,應用服務器拿到code,並用client_id去后台查詢對應的client_secret
  •  第五步:將code、client_id、client_secret傳給認證服務器換取access_token和  
  •          refresh_token
  •  第六步:將access_token和refresh_token傳給應用服務器
  •  第七步:驗證token,訪問真正的資源頁面

 

案例Github自取:https://github.com/PinkPig-cq/springSecurityoAuth

1.3. 密碼模式(Resource Owner Password Credentials Grant)

 

  •  第一步:用戶訪問用頁面時,輸入第三方認證所需要的信息(QQ/微信賬號密碼)
  •  第二步:應用頁面那種這個信息去認證服務器授權
  •  第三步:認證服務器授權通過,拿到token,訪問真正的資源頁面

優點:不需要多次請求轉發,額外開銷,同時可以獲取更多的用戶信息。(都拿到賬號密碼了)

缺點:局限性,認證服務器和應用方必須有超高的信賴。(比如親兄弟?)

應用場景:自家公司搭建的認證服務器

 

 

1.4. 客戶端憑證模式(Client Credentials Grant)

 

 

 

 

  •  第一步:用戶訪問應用客戶端
  •  第二步:通過客戶端定義的驗證方法,拿到token,無需授權
  •  第三步:訪問資源服務器A
  •  第四步:拿到一次token就可以暢通無阻的訪問其他的資源頁面。

這是一種最簡單的模式,只要client請求,我們就將AccessToken發送給它。這種模式是最方便但最不安全的模式。因此這就要求我們對client完全的信任,而client本身也是安全的。

因此這種模式一般用來提供給我們完全信任的服務器端服務。在這個過程中不需要用戶的參與。

 

ps:個人理解,如有錯誤,請幫我指出下,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM