1

有没有办法阻止对非授权客户端的 REST API 调用?有没有办法让API“仅限于”(公开)少数定义明确的客户?

谢谢 :-)

4

3 回答 3

2

您可以在客户端和服务器之间部署相互验证的 SSL。您可以在此处使用自签名证书,因此您无需从 CA 购买任何证书。这将确保您的服务器仅接受来自具有客户端证书的客户端的请求(将您的服务器配置为仅接受部署在客户端上用于客户端身份验证的自签名客户端证书)。

于 2012-04-09T13:04:21.733 回答
1

如果您使用的是 RESTFul HTTP

您可以将 HttpServletFilter 添加到您的 web.xml 中,以防止未经授权的客户端访问您的 REST 方法。

请参阅 保护 JAX-RS 和 RESTeasy

如果您使用 Spring Framework,并且不想实现自己的 HttServletFilter,则可以使用Spring Security

于 2012-04-09T13:11:32.293 回答
1

您只需要在您的 RESTful 服务中实现安全机制,因此它拒绝访问未经授权的客户端(使用 404 或 401 响应代码)。有几种方法可以实现这一点:

  • 中继 HTTP 身份验证机制,例如基本身份验证
  • 实现自定义身份验证框架,克服 HTTP 基本身份验证限制。Amazon有一种有趣的方法,包括自定义 HTTP 标头并支持散列。
  • 使用现有的安全框架并将其功能添加到您的服务中。Spring Security听起来是个不错的选择。
于 2012-04-09T13:23:17.267 回答