2011-01-21 40 views
4

我正在構建一個RESTFul API並想知道什麼是進行身份驗證的最佳方式?用戶需要進行身份驗證。我知道的三種方法:構建一個RESTFul API,如何進行身份驗證

1)傳遞的API密鑰每個RESTful請求:

http://api.mydomain.com/api-key-here/get-users 

這是很好的,因爲開發人員可以立即開始通過簡單地複製URL字符串到瀏覽器中使用API​​。是否有任何潛在的安全風險?

2.)每個請求都會傳遞請求標題中的API密鑰。

這似乎更安全,但開發人員無法通過瀏覽器發出請求。 CURL是必需的。

3)的OAuth

我必須承認,我不很瞭解,但似乎很受歡迎。我擔心它是開發人員開始使用API​​的障礙。他們首先必須熟悉oAuth,並設置它。

想法?非常感謝。

回答

2

如果您擔心開銷的成本很高,我建議您使用基本身份驗證,但通過https運行您的API。

我這樣做與Diligent Street它工作得很好。我使用API​​密鑰,並將它與Secret作爲用於基本身份驗證的用戶名/密碼組合。

+0

是的,它會是SSL,但安全性有點重要。你如何使用密鑰來連接到用戶名/密碼組合?用戶是否會在每個RESTFul請求URL中傳遞API密鑰和祕密? – Justin 2011-01-21 04:33:12

0

我採用了這裏找到的技術:Build a RESTful API。此解決方案使用您的API ID,API祕密和UNIX時間戳的哈希,並在HTTP頭中傳遞。這種驗證方法與Mashery’s Authentication使用的方法相同。

這個鏈接引用,幷包含一個完全成熟的入門套件,用於支撐EF數據庫一起創建具有驗證的API,會員和* API使用計量 *。

至於測試服務,您可以使用RESTClient執行與自定義標頭,而不是使用捲曲的HTTP調用。

相關問題