在初始化協(xié)議之前浅侨,客戶端在授權(quán)服務器注冊溪北。典型的包括終端用戶與html注冊表單的交互。
客戶端注冊并不需要客戶端和授權(quán)服務器的直接交互绰播。在授權(quán)服務器支持時骄噪,注冊可以依靠其他方式建立信任并獲得所需的客戶端屬性(例如重定向URI,客戶端類型)蠢箩。例如链蕊,注冊可以使用自發(fā)行或第三方發(fā)行聲明或通過授權(quán)服務器使用信任通道執(zhí)行客戶端發(fā)現(xiàn)完成事甜。
在注冊客戶端時,客戶端開發(fā)者應該:
- 指定客戶端類型
- 提供客戶端重定向URI
- 包含其他授權(quán)服務器所需的信息滔韵,例如應用名逻谦,網(wǎng)頁,描述陪蜻,logo等
客戶端類型
基于與授權(quán)服務器進行安全驗證的能力定義了兩種類型(是否能維持憑據(jù)的機密性)
- 機密客戶端
- 公開客戶端
客戶端標識
授權(quán)服務器向注冊客戶端頒發(fā)一個代表了客戶端提供的注冊信息的獨特字符串作為標識邦马。該標識是公開的,暴露給資源擁有者并且不能被單獨用于客戶端認證宴卖。
客戶端標識的字符串大小并為被規(guī)范定義滋将。客戶端應避免對標識的大小做出假定症昏。授權(quán)服務器應該記錄標識的長度随闽。
客戶端驗證
如果客戶端類型是機密的,客戶端和授權(quán)服務器建立一個合適的客戶端認證方法用于授權(quán)服務器的安全性需求肝谭。授權(quán)服務器可能接受滿足安全性需求的任何形式的客戶端驗證掘宪。
機密客戶端典型的建立一系列客戶端憑據(jù)用于授權(quán)服務器進行身份驗證(密碼,公鑰攘烛,私鑰)魏滚。
授權(quán)服務器可能建立一個對公開客戶端的驗證方法。但是授權(quán)服務器一定不能依賴公開客戶端驗證達到識別客戶端的目的坟漱。
每次請求不能使用一個以上的驗證方法鼠次。
1.客戶端密碼
擁有客戶端密碼的客戶端可能使用HTTP基本認證來與授權(quán)服務器進認證。
授權(quán)服務器可能支持在請求體中包含客戶端憑據(jù)芋齿,參數(shù)包括client_id和client_secret须眷。但并不推薦在請求提中使用這兩個參數(shù)包含客戶端憑據(jù),應該限于不能直接采用HTTP基本身份驗證方案的客戶端沟突,并且只能包含在請求體中花颗。
2.其他驗證方法
授權(quán)服務器可以支持任何與其安全要求匹配的合適的HTTP身份驗證方案。當使用其他身份驗證方法時惠拭,授權(quán)服務器必須定義客戶端標識(注冊記錄)和認證方案之間的映射扩劝。
未注冊客戶端
該規(guī)范并沒有排除對未注冊客戶端的使用。但是需要做額外的安全性分析并審查互操作性的影響职辅。