2016-07-04 65 views
1

我目前正在为社交网络应用程序设计一个REST API。REST API只允许访问资源所有者的URL

我想确定如何才能锁定每个用户对特定资源的访问权限。例如,我有以下URL的

https://social-network.com/api/user?id=2/someUpdateOrPostOp 
(or https://social-network.com/api/user/id=2/someUpdateOrPostOp) 
https://social-network.com/api/user?id=3/someUpdateOrPostOp 

我需要的当然是与ID的用户= 2不能够把自己的ID更改为3的url和perfom操作上的用户与数据ID 3.

注意:我在Tomcat中使用JAX-RS,使用API​​的客户端是Android设备。

我需要研究什么技术来实现这一目标?我觉得我错过了这些。

感谢您提供的任何帮助,这让我非常困惑!

回答

1

你需要两样东西:确认来电者即你知道来电者是爱丽丝的身份

  1. 逻辑。这可以通过OAuth,Open ID Connect或其他协议实现。您可以使用更多基本认证,例如HTTP BASIC身份验证,但导致密码反模式,您可以与API共享您的密码。
  2. 给出用户的逻辑确定用户可以做什么。这被称为授权或访问控制。鉴于您处于JAX-RS中,您可以使用消息拦截器来查看用户ID,然后查看请求的对象或调用的参数,然后决定拒绝访问,如果经过身份验证的用户不符合请求个人资料。您甚至可以使用XACML的外部授权。鉴于你的简单用例,但是,这太多了。

您可以在JAX-RS拦截器here上阅读更多信息。

相关问题