2012-04-09 107 views
1

有沒有辦法阻止對非授權客戶端的REST API調用? 有沒有辦法讓API「僅限於」(公開)只有少量明確定義的客戶端?阻止REST API調用

感謝:-)

+0

您需要確保誰可以連接到服務器。 – paulsm4 2012-04-09 06:48:53

+1

REST不公開API。你對RPC感到困惑。 'http:// en.wikipedia.org/wiki/REST' – 2012-04-09 06:50:41

+0

假設你的意思是REST之外的其他東西,你使用的是什麼服務器平臺/語言/框架? – 2012-04-09 06:51:29

回答

2

您可以部署相互認證的客戶端和服務器之間的SSL。您可以在此使用自簽名證書,因此您無需從CA購買任何證書。這將確保您的服務器僅接受來自具有客戶端證書的客戶端的請求(將您的服務器配置爲只接受客戶端上部署的用於客戶端身份驗證的自簽名客戶端證書)。

1

如果您正在使用RESTful HTTP服務

您可以添加HttpServletFilter到你的web.xml,防止未經授權的用戶訪問您的REST方法。

Securing JAX-RS and RESTeasy

如果使用Spring,你,你不希望實現自己的HttServletFilter可以使用Spring Security

1

你只需要實現您的RESTful服務的安全機制,所以它拒絕訪問未授權的客戶端(使用404或401響應代碼)。有幾種方法來實現這一目標:對HTTP認證機制

  • 接力,像Basic Authentication
  • 實現自定義的驗證框架,克服了HTTP基本身份驗證的限制。 Amazon有一個有趣的方法,其中包括自定義HTTP標頭並支持散列。
  • 使用現有的安全框架並將其功能添加到您的服務中。 Spring Security聽起來像是一個不錯的選擇。