2012-04-09 82 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听起来像是一个不错的选择。