Oauth2(2)客戶端註冊

weixin_34007291發表於2016-09-13

在初始化協議之前,客戶端在授權伺服器註冊。典型的包括終端使用者與html登錄檔單的互動。

客戶端註冊並不需要客戶端和授權伺服器的直接互動。在授權伺服器支援時,註冊可以依靠其他方式建立信任並獲得所需的客戶端屬性(例如重定向URI,客戶端型別)。例如,註冊可以使用自發行或第三方發行宣告或通過授權伺服器使用信任通道執行客戶端發現完成。

在註冊客戶端時,客戶端開發者應該:

  • 指定客戶端型別
  • 提供客戶端重定向URI
  • 包含其他授權伺服器所需的資訊,例如應用名,網頁,描述,logo等

客戶端型別

基於與授權伺服器進行安全驗證的能力定義了兩種型別(是否能維持憑據的機密性)

  • 機密客戶端
  • 公開客戶端

客戶端標識

授權伺服器向註冊客戶端頒發一個代表了客戶端提供的註冊資訊的獨特字串作為標識。該標識是公開的,暴露給資源擁有者並且不能被單獨用於客戶端認證。

客戶端標識的字串大小併為被規範定義。客戶端應避免對標識的大小做出假定。授權伺服器應該記錄標識的長度。

客戶端驗證

如果客戶端型別是機密的,客戶端和授權伺服器建立一個合適的客戶端認證方法用於授權伺服器的安全性需求。授權伺服器可能接受滿足安全性需求的任何形式的客戶端驗證。

機密客戶端典型的建立一系列客戶端憑據用於授權伺服器進行身份驗證(密碼,公鑰,私鑰)。

授權伺服器可能建立一個對公開客戶端的驗證方法。但是授權伺服器一定不能依賴公開客戶端驗證達到識別客戶端的目的。

每次請求不能使用一個以上的驗證方法。

1.客戶端密碼
擁有客戶端密碼的客戶端可能使用HTTP基本認證來與授權伺服器進認證。
授權伺服器可能支援在請求體中包含客戶端憑據,引數包括client_id和client_secret。但並不推薦在請求提中使用這兩個引數包含客戶端憑據,應該限於不能直接採用HTTP基本身份驗證方案的客戶端,並且只能包含在請求體中。

2.其他驗證方法
授權伺服器可以支援任何與其安全要求匹配的合適的HTTP身份驗證方案。當使用其他身份驗證方法時,授權伺服器必須定義客戶端標識(註冊記錄)和認證方案之間的對映。

未註冊客戶端

該規範並沒有排除對未註冊客戶端的使用。但是需要做額外的安全性分析並審查互操作性的影響。

相關文章