V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
DamienS
V2EX  ›  Python

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

  •  
  •   DamienS · 2019-09-01 17:51:23 +08:00 · 3475 次点击
    这是一个创建于 1889 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    谢谢大家

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

    以前也想实现这么一个以字段为基础的,但一直没想到比较好的方式。
    Marmot
        3
    Marmot  
       2019-09-02 09:18:30 +08:00
    之前实现过一个,给每个人单独配置,让根据配置返回内容,配置起来太麻烦了
    role 的其实也可以,你可以检查 role,然后根据 role 返回
    xpresslink
        4
    xpresslink  
       2019-09-02 10:49:17 +08:00
    自己百度
    使用 django-guardian 实现 django-admin 的行级权限控制的方法
    Django-guardian 实现对象级别的权限控制
    sazima
        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'}
    Vegetable
        6
    Vegetable  
       2019-09-02 14:29:43 +08:00
    django 不只可以基于角色(group)分配权限,也可以单独配置用户权限的.他的问题是默认只会以 Model 为单位创建权限,而不会以字段为单位创建权限.你完全可以自定义每个字段的权限吧,https://docs.djangoproject.com/en/2.2/ref/models/options/#permissions
    Vegetable
        7
    Vegetable  
       2019-09-02 14:34:19 +08:00
    @Vegetable 又想了一下好像不对,这样依然不算 abac..
    lolizeppelin
        8
    lolizeppelin  
       2019-09-11 15:24:44 +08:00
    openstack 的 oslo policy 是 rbac 的,但是可以做到属性控制,可以对每条返回每个字段都鉴权,但实现方式问题性能不好循环很多
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2604 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:36 · PVG 23:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.