在为应用程序设计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/