簡體   English   中英

適用於第三方客戶(AAA)的REST API

[英]rest api for 3rd party customers (AAA)

我目前正在研究REST / JSON API,該API必須通過遠程網站提供一些服務。 我不知道這些網站的最終客戶,他們將/不應該在API服務器上擁有一個帳戶。 API服務器上唯一存在的帳戶將是標識網站的帳戶。 由於所有這些都是RESTful的,因此所有通信都將在最終用戶瀏覽器(通過javascript / JSON)和我的REST API服務之間進行,我如何確保該系統不會被有興趣提高中間人賬單的第三方濫用? (中間商是轉售我的服務的網站的所有者)。 您會建議哪種身份驗證方法行得通,並且可以防止用戶僅從網站上獲取js代碼並將其稱為1000000次,以使網站所有者破產? 我當時在考慮使用HTTP_REFERER並將其轉換為IP地址(以找出托管該代碼的服務器,並根據該IP進行身份驗證),但是我認為HTTP_REFERER可以很容易地被欺騙。 我不是在尋找我的客戶的最終客戶在API服務器上注冊,這會違背該API的目的。

有什么想法嗎?

謝謝,丹

這可能不是您的選擇,但是在這種情況下,我之前所做的就是在REST調用之上創建代理。 該網站調用其自己的內部服務,然后該服務調用您的REST調用。 好處是,就像您所說的那樣,沒有人可以直接打REST呼叫或嘗試欺騙呼叫。

如果失敗,則可以實現類似HMAC的身份驗證方案( http://en.wikipedia.org/wiki/Hash-based_message_authentication_code )。 我已經看到很多API使用此方法。

使用HMAC-SHA1進行API身份驗證-如何安全存儲客戶端密碼?

驗證Java代碼的方式如下: http : //support.ooyala.com/developers/documentation/api/signature_java.html

無論哪種方式,我認為您都必須在服務器端做一些工作。 否則,如果一切都純粹是客戶端,人們可能可以對API進行反向工程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM