我实现了一个RBAC
的权限系统. 它能很好的对 api 接口的权限进行控制. 具体功能及实现请参考这里:
https://github.com/iGeeky/wolf/blob/master/README-CN.md
我现在想添加数据的权限控制, 如下下面一个例子:
用户 A
只能查询及审核属于自己业务范围的视频数据(比如通过 tag 区分)目前的 RBAC 只能实现, 如果给了用户 A
查询及审核视频的权限, 也就对所有视频都有了相应权限.
我考察了一下, 感觉使用ABAC
实现对数据的访问控制, 可能是一个比较常用的方法, 比如上面的例子中, 可以定义这样的策略:
测试数据:
用户: {用户名: 用户 A, 角色: 短视频审核员, 部门: 运营 1 组, ...}
视频: {标题: 短视频, TAG: 短视频, ...}
策略(这里不是严格按照 ABAC 或 RBAC 的架构及概念来描述的):
用户: 用户.角色 = 短视频审核员
资源: 视频
动作: 读取,审核
匹配策略: 视频.TAG = 短视频
如果在业务系统内实现上面的逻辑, 应该是比较好实现这样一套控制策略的. wolf 的架构是与业务系统完全解耦的, 它是在 http 代理层实现的. 因此在目前 wolf 中实现却有一些难题:
对于以上问题, 大家有什么好的解决方案没?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.