各位好, 我最近在用 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
freakxx 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 的,但是可以做到属性控制,可以对每条返回每个字段都鉴权,但实现方式问题性能不好循环很多
|