
各位好, 我最近在用 django 写个略复杂的 app。需要写对数据库条目的 access control。研究了下可能的用法后暂定认为 Attribute Based Access Control 比 Role based 更加适合。
我看了下 django 自带的权限系统基本是 role based。abac 只找到了 casbin。想问下各位大牛现在有没啥开源的 ABAC 项目推荐。我想选下哪个更合适
谢谢大家
1 banxi1988 2019-09-01 19:09:29 +08:00 很多数据库本身(比如我了解 PostgreSQL) 就有基于字段级别的权限控制可以参考一下实现, 如果是内部应用,用户不多的话,我感觉可以直接使用数据库的权限控制来实现. |
2 metamask 2019-09-01 23:52:46 +08:00 插个眼。 以前也想实现这么一个以字段为基础的,但一直没想到比较好的方式。 |
3 Marmot 2019-09-02 09:18:30 +08:00 之前实现过一个,给每个人单独配置,让根据配置返回内容,配置起来太麻烦了 role 的其实也可以,你可以检查 role,然后根据 role 返回 |
4 xpresslink 2019-09-02 10:49:17 +08:00 自己百度 使用 django-guardian 实现 django-admin 的行级权限控制的方法 Django-guardian 实现对象级别的权限控制 |
5 sazima 2019-09-02 13:30:11 +08:00 if user.has_roles('admin', 'some'): return {'name': xxx', 'phone': 111} else: return {'name': 'xxx'} |
6 Vegetable 2019-09-02 14:29:43 +08:00 django 不只可以基于角色(group)分配权限,也可以单独配置用户权限的.他的问题是默认只会以 Model 为单位创建权限,而不会以字段为单位创建权限.你完全可以自定义每个字段的权限吧,https://docs.djangoproject.com/en/2.2/ref/models/options/#permissions |
8 lolizeppelin 2019-09-11 15:24:44 +08:00 openstack 的 oslo policy 是 rbac 的,但是可以做到属性控制,可以对每条返回每个字段都鉴权,但实现方式问题性能不好循环很多 |