2013-05-01 80 views
0

我正在爲個人項目創建一個RESTful API,並且我一直在閱讀關於api認證的知識。我很可能不明白不同的事情是什麼。什麼是OAuth?什麼是API密鑰?我需要什麼比SSL更多?爲什麼

主要問題

爲什麼我就不能有每個請求都使用HTTPS和使用會話/ cookie嗎?

回答

1

如果用戶將通過您擁有或控制的應用程序訪問您的API,那麼HTTPS和用戶認證/授權是可以的。

但是,如果您希望允許其他開發人員創建的應用程序訪問您的API,您可以使用OAuth和API密鑰來控制這些第三方應用程序如何使用您的API。

  • API密鑰:通過爲每個應用程序分配單獨的API密鑰,您可以識別應用程序的發送請求。您可以使用此信息來跟蹤或限制應用程序可以使用API​​執行的操作。
  • OAuth:如果第三方應用程序需要訪問用戶擁有的敏感數據或代表他們執行操作,那麼您希望確保用戶可以使用它。一種可以做到這一點的方法是要求應用程序在每次請求時都傳遞用戶證書。但是,這通常不是一個好主意,因爲您不希望用戶向第三方透露用戶名和密碼。這是OAuth解救的地方,因爲它允許用戶爲第三方提供有限的權限來代表他們訪問您的API。
0

SSL足以滿足這一點,如果:

  • 你需要一個客戶端證書
  • 的應用程序獲得客戶端證書
  • 應用驗證它反對接受客戶
  • 的列表應用程序記錄哪個客戶端執行該事務

沒有所有你只是接受來自任何人的交易,這是OAuth正在解決的問題。