2013-10-24 76 views
4

4.3.2 of RFC 6749(描述了「資源所有者密碼憑據授予流動的」的oauth2授權框架)指出:客戶端憑證在oAuth2資源所有者密碼憑證授權流程中是否可選?

如果客戶類型是機密或客戶端發出的客戶
憑證(或交辦的其他認證要求),則客戶端必須按照第3.2.1節中描述的
對授權服務器進行認證。

似乎無法找到關於「機密客戶端」是什麼的參考。由此看來,允許非機密客戶參與「資源所有者密碼憑證授予流程」(4.3)。即客戶端不會(也不能)使用授權服務器進行身份驗證。

這是正確的嗎?

回答

3

退房的client types部分,在這裏被賦予「機密客戶」的定義爲:能夠維持他們的 證書(保密的

客戶例如,用 一個安全的服務器上實現客戶端的限制訪問客戶端憑證),或能夠使用其他方式安全地進行客戶端認證。

Cloudfoundry的命令行cf application是使用密碼授權的「公共」(即非機密)客戶端的示例。

+0

這絕對是規範說的,但它有點弱。基本上:如果你的客戶可以保密,你必須使用一個祕密,但如果它可以,那麼它不必。隨着越來越少的網絡應用程序「機密」(因爲它們是'基於用戶代理'的Javascript - 例如AngularJS,Knockout等),客戶端認證似乎只是落後而已。這很重要嗎? – Rhubarb

1

中的oauth2規範Section 2.3有以下段落:

授權服務器可以建立客戶身份驗證方法與公共機構提供服務。但是,授權服務器不得依賴公共客戶端身份驗證來識別客戶端。

如果公共客戶端在section 2.1定義爲:

客戶端無法保持其憑據(例如,通過資源所有者,所用的設備上執行的客戶,如安裝的本機的保密性應用程序或基於Web瀏覽器的應用程序),並且無法通過任何其他方式進行安全的客戶端身份驗證。

因此,您可以(可選)對客戶端進行身份驗證,但不要認爲客戶端的含義就是它說的那樣。

相關問題