开发者社区> 问答> 正文

[@徐雷frank][¥20]rest接口面向资源时,如何设计权限的管理

大王巡山hoo 2018-11-17 00:22:22 697

徐老师,对于面向业务和面向资源两种接口开发方式,想了解下,目前实际系统开发设计上,是推荐面向业务还是面向资源的接口方式;面向资源的接口方式给项目带来的无疑是节省了很多业务接口开发,然而在实际系统应用上,面向资源的接口会遇到如下问题:
1、同一个接口,可能会提供给多个终端访问;
2、同一个接口,可能会提供给不同的用户访问(如用户资料查询接口);
3、同一个接口,如果是PATCH更新接口的话,可能只是对应实体的部分内容更新;
4、。。。。。。
由于存在这些问题,那么当场景:

    查询用户帐户明细,提供给公司平台后台管理系统调用、提供给app用户本人调用,提供给其它人调用时,其中其它人是无权限调用的;
    用户的姓名、生日,性别、住址等信息、用户本身可以更新、其它用户不能更新该用户信息;

由于接口是面向资源的,那么我们在接口的开发设计上,如何对接口对外提供的访问和操作权限进行统一管理呢?
目前想到的场景是在网关上针对性的对每个接口(如用户帐户明细查询,或用户资料更新)识别到是这个接口后进行判断来做权限控制,那么涉及到每同一个面向资源的接口存在一种场景时,都需要在网关上增加一种权限判断,似乎并不是很好的解决方案。

数据安全/隐私保护 网络架构
分享到
取消 提交回答
全部回答(1)
  • 徐雷frank
    2019-07-17 23:15:05

    1.基于角色授权,每个客户端都有自己的角色,每个角色都有自己的权限。
    2.这个可以使用令牌Token来实现,每个调用客户端申请自己的调用令牌,令牌生成时候可以携带权限,也可以携带角色,或者调用的时候根据令牌里的UserId来查询其角色,在判断权限。
    3.现在流行的API权限设计,基本都是基于令牌的

    0 0
+ 订阅

云安全开发者的大本营

推荐文章
相似问题