跳转到主要内容

Django的参数化基于角色的访问控制

项目描述

(参数化基于角色的访问控制)

https://github.com/dimagi/django-prbac

Build Status Test coverage PyPi version

关于RBAC和PRBAC

基于角色的访问控制(RBAC) 是大型系统中访问控制的标准方法。使用RBAC,您将 权限 授予 角色。例如,您可能将 Reporting 权限授予 Analyst 角色。在大多数系统中,您可以按深度嵌套角色,并为用户提供任意数量的角色。实践中一个很好的例子是 PostgreSQL角色和权限

角色和权限是您系统中的任何抽象概念。由应用程序代码决定根据授予的权限采取什么操作。这当然可以以更低级别的权限系统(如行级或对象级访问控制列表(ACL))来实现。

参数化基于角色的访问控制(PRBAC) 为角色和权限添加参数。现在,例如,您可以授予 "Reporting(organization="Dimagi",area="Finance")FinancialAnalyst(organization="Dimagi")。如果不使用参数,那么它就是RBAC。如果使用有限选择集的参数,那么它将呈指数级增强。如果使用无限选择集的参数(例如字符串或整数),那么它将无限增强。有限的参数化示例是PostgreSQL中特定权限(SELECTUPDATE 等)如何通过一个对象进行参数化。在PRBAC中,这种参数化是普遍存在的。

深入文档

要了解有关此库中实现的参数化基于角色的访问控制的更多信息,请访问 http://django-prbac.readthedocs.org/

Django的访问控制

  • django.contrib.auth:这个应用程序是Django附带的应用程序,提供Unix风格的访问控制(用户、组、权限),具有可扩展的权限集,这些权限隐式地通过内容类型进行参数化。这与基于角色的访问控制有根本的不同。这里只提一下,因为它与Django一起提供,每个人都会想知道“你为什么要重新发明轮子?”。如果 django.contrib.auth 是轮子,那么RBAC是汽车,PRBAC是变形金刚。我将将其留给读者作为练习,尝试使用 django.contrib.auth 实现PRBAC :-)

  • django-rbac:这个项目看起来已经停止维护,并且没有进行任何参数化。

  • django-role-permissions:此应用程序实现了一种RBAC,其中角色在代码中静态定义。

  • 其他内容可以在 https://www.djangopackages.com/grids/g/perms/ 上查看。许多提供对象级权限,这与基于角色的访问控制正交,就像Unix权限一样。实际上,这可能适用于使用“权限”一词的任何东西。

快速入门

要安装,请使用pip

$ pip install django-prbac

许可证

Django-prbac采用MIT许可协议发布。(有关详细信息,请参阅LICENSE文件)

项目详情


下载文件

下载适合您平台的项目文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

django-prbac-1.1.0.tar.gz (16.2 kB 查看散列)

上传时间 源代码

构建发行版

django_prbac-1.1.0-py2.py3-none-any.whl (18.3 kB 查看散列)

上传时间 Python 2 Python 3

由以下组织支持