在为应用程序设计REST API时,某些服务应该是公共的,而其他服务则最好保持私有(即不可公开访问)。 OAuth由服务应用程序使用。

有哪些措施要考虑?

请注意以下几点:


在混淆的URI下发布私有资源。
需要特殊的访问键。 (仅由授权客户知道)。

最佳答案

最可扩展的方法是设计URL,以使中间人很容易知道哪些资源可用于所有人,哪些资源仅可用于特定用户。

然后,代理或Servlet过滤器或任何适合您当前需要的过滤器都可以进行授权,从而阻止所有未授权的请求。
现在,实际服务可以盲目地信任和服务确实到达它的所有请求。

关注点分离和所有这些。

例:

未经身份验证的请求可以达到:

/myapi/public


使用用户名“ joe”进行身份验证的请求也可以达到:

/myapi/personal/joe


401未经授权:

/myapi/personal/anything_but_joe


确保/ myapi / personal / otheruser和/ myapi / personal / nonexistentuser返回无法区分的响应。

关于security - 限制对RESTful资源的访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6848535/

10-13 01:26