保护REST和JSON

我想使用RESTful架构构建我的Web服务来提供JSON数据。

但我只想要我自己的客户端应用程序可以从我的Web服务请求。

基本上,我的Web服务包含非公共消费的敏感数据,但我想以这种方式构建它,以便我可以构建许多连接到我的Web服务的不同客户端应用程序。

非常感谢任何想法,谢谢。

在保护Web服务时,它是RESTful或使用JSON这一事实并不是一个相关因素。 任何Web服务都需要以相同的方式保护。 你应该做一些事情:

  1. 如果可能,请不要在Internet上托管您的Web服务。 例如,如果Web服务托管在公司的LAN中,除非您通过路由器专门公开,否则它不会公开使用。
  2. 设置身份validation和授权规则。 如果您在Windows域中托管Web服务,则只需使用Windows身份validation并根据Active Directory用户和组设置规则。 其他选项是使用HTTP身份validation,客户端证书身份validation,或者如果您在.NET中进行开发,则表单身份validation。
  3. 使用加密(HTTPS),尤其是当您的网站托管在Internet上时。

你只需要做几件事来做到这一点。 首先,服务客户端需要针对您的服务进行身份validation(通过HTTPS)以发出请求。 对客户端进行身份validation后,您可以返回客户端必须包含此令牌的私有令牌。 只要令牌在一段合理的时间后到期,并且使用安全算法生成它,这应该做你想要的。

如果您有更严格的安全要求,可以遵循Jakob的建议,或让客户端在发出请求之前启动VPN会话。