django 有没啥好的基于属性的权限验证(Attribute Based Access Control)的开源项目

2019-09-01 17:51:23 +08:00
 DamienS

各位好, 我最近在用 django 写个略复杂的 app。需要写对数据库条目的 access control。研究了下可能的用法后暂定认为 Attribute Based Access Control 比 Role based 更加适合。

我看了下 django 自带的权限系统基本是 role based。abac 只找到了 casbin。想问下各位大牛现在有没啥开源的 ABAC 项目推荐。我想选下哪个更合适

谢谢大家

3475 次点击
所在节点    Python
8 条回复
banxi1988
2019-09-01 19:09:29 +08:00
很多数据库本身(比如我了解 PostgreSQL) 就有基于字段级别的权限控制可以参考一下实现, 如果是内部应用,用户不多的话,我感觉可以直接使用数据库的权限控制来实现.
freakxx
2019-09-01 23:52:46 +08:00
插个眼。

以前也想实现这么一个以字段为基础的,但一直没想到比较好的方式。
Marmot
2019-09-02 09:18:30 +08:00
之前实现过一个,给每个人单独配置,让根据配置返回内容,配置起来太麻烦了
role 的其实也可以,你可以检查 role,然后根据 role 返回
xpresslink
2019-09-02 10:49:17 +08:00
自己百度
使用 django-guardian 实现 django-admin 的行级权限控制的方法
Django-guardian 实现对象级别的权限控制
sazima
2019-09-02 13:30:11 +08:00
if user.has_roles('admin', 'some'):
return {'name': xxx', 'phone': 111}
else:
return {'name': 'xxx'}
Vegetable
2019-09-02 14:29:43 +08:00
django 不只可以基于角色(group)分配权限,也可以单独配置用户权限的.他的问题是默认只会以 Model 为单位创建权限,而不会以字段为单位创建权限.你完全可以自定义每个字段的权限吧,https://docs.djangoproject.com/en/2.2/ref/models/options/#permissions
Vegetable
2019-09-02 14:34:19 +08:00
@Vegetable 又想了一下好像不对,这样依然不算 abac..
lolizeppelin
2019-09-11 15:24:44 +08:00
openstack 的 oslo policy 是 rbac 的,但是可以做到属性控制,可以对每条返回每个字段都鉴权,但实现方式问题性能不好循环很多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/596958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX