2015-02-11 82 views
2

我一直在尋找使用oauth2客戶端憑據授權來保護我的API(所有用戶都將被信任的第三方)。我遵循與PayPal相同的方法:https://developer.paypal.com/docs/integration/direct/paypal-oauth2/爲什麼使用客戶端憑證流?

但是,我看到HTTP:// basic auth用於獲取不記名令牌。然後,不記名令牌用於保護API調用。

我不明白的是,如果您打算信任TLS和http:basic auth來檢索持票人標記 - 爲什麼不直接使用http:basic auth來進行API調用?使用持票人令牌有什麼好處?

我錯過了什麼?

回答

1

作爲每The OAuth 2.0 Authorization Framework: Bearer Token Usage

訪問令牌提供了一個抽象,用於 更換不同 授權構建體(例如,用戶名和密碼,斷言)由資源服務器理解的單個令牌。這種抽象 可以在短時間內發佈訪問令牌,並且可以刪除資源服務器需要了解多種 認證方案的需求。

授權請求併爲您提供承載令牌的服務器可能與實際控制您試圖訪問的資源的服務器不同。

根據RFC,它們被顯示爲兩個不同的實體。給您帶有承載令牌的那個是授權服務器並且服務資源的那個是資源服務器

+1

這是否意味着,如果我的授權服務器和資源服務器是同一個 - 那麼承載令牌沒有提供真正的好處? – 2015-02-11 11:09:46

+0

每次發出資源請求時,都可以節省驗證客戶端的好處。 – 2015-02-11 11:20:36

+1

對於天真q的Ankit,抱歉 - 但爲什麼要驗證客戶端比驗證持證者令牌更費力? – 2015-02-11 11:24:39

1

除了Ankit Saroch的說法之外,使用Tokens進行OAuth的方式可能會在未來開闢其他可能性;假設您可能想要擴展流程以包含用戶信息。通過驗證令牌,這意味着您可能不需要更改服務中的令牌驗證(這很簡單),而只需要驗證和授權步驟。

但顯然你是對的,你在說什麼:用戶端憑證,OAuth的流量是不安全比單純使用像API密鑰或基本身份驗證技術。所有這些都依賴於客戶機密(它可以保留自己的憑據)。

OAuth規範(https://tools.ietf.org/html/rfc6749#section-2.1)討論了這些客戶端類型。總而言之,實際上值得閱讀這個規範。

相關問題