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/springSecurityoAuthgit

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

 

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

優勢:不須要屢次請求轉發,額外開銷,同時能夠獲取更多的用戶信息。(都拿到帳號密碼了)github

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

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

 

 

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

 

 

 

 

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

這是一種最簡單的模式,只要client請求,咱們就將AccessToken發送給它。這種模式是最方便但最不安全的模式。所以這就要求咱們對client徹底的信任,而client自己也是安全的。服務器

所以這種模式通常用來提供給咱們徹底信任的服務器端服務。在這個過程當中不須要用戶的參與。微信

 

ps:我的理解,若有錯誤,請幫我指出下,謝謝。spa

相關文章
相關標籤/搜索