2016-03-01 103 views
2

我目前正在嘗試使用Spring Security OAuth實現OAuth2身份驗證的Web服務(API)。據我瞭解,給用戶,客戶端應用程序和服務器,認證過程如下:Spring中OAuth2中的身份驗證類型:如何通過用戶憑據進行身份驗證?

  1. 用戶通過客戶端向服務器請求資源
  2. 客戶端檢索來自服務器
  3. 服務器請求令牌用臨時請求令牌和重定向URL進行響應客戶端加載網頁(重定向URL)並允許用戶輸入憑據以驗證請求令牌。表單輸入發送到服務器,輸入對客戶端是未知的。
  4. 服務器與授權代碼,這是交給客戶回覆
  5. 客戶端使用授權碼來獲取訪問令牌(以及可選,如果請求一個刷新令牌)
  6. 用戶手中訪問令牌客戶端
  7. 客戶端使用的訪問令牌來檢索請求的資源

在春天的OAuth,有三種補助類型request an access token

Authorizat離子碼,這是我上面描述的方法,刷新標記和用戶憑證。我不知道如何通過用戶憑據檢索工作,是否類似於通過刷新令牌檢索?

回答

2

你上面做出的一些陳述是不正確的。可能這是一個好主意,如果你有另一個看OAuth2規範:https://tools.ietf.org/html/rfc6749

要專注於你的問題,我只是在你的問題的最後一段後面提到。

OAuth2支持授權類型,即'授權碼','隱式','資源所有者密碼憑證'和'客戶端證書'。您稱爲「用戶憑據」的那個將是「資源所有者密碼憑證」。在這種授權類型中,您放棄了OAuth無需將資源所有者(又名用戶)證書交給客戶端的好處。然而,它仍然具有無需在客戶端上存儲密碼併爲每個資源請求發送密碼的好處,因爲代替使用了令牌。該過程流程如下:

  1. 資源所有者發送憑證到客戶
  2. 客戶端發送憑證來授權服務器
  3. 服務器返回訪問令牌(和optinally一個 刷新令牌)
  4. 客戶使用訪問令牌在隨後的請求 資源服務器

所以,你可以說,資源所有者的密碼信用流當客戶端已經有一個有效的刷新標記(從此授予)時,授權授予與流程類似。

相關問題