django的参数化基于角色的访问控制
django-prbac的Python项目详细描述
(基于角色的参数化访问控制)
https://github.com/dimagi/django-prbac
关于rbac和prbac
基于角色的访问控制(rbac)是大型系统中访问控制的标准方法。 使用rbac,可以将特权授予角色。例如你 可能会将特权Reporting授予角色Analyst。在大多数情况下 在系统中,可以根据需要深度嵌套角色,并为用户提供任意多的角色。好的 实践中的例子是PostgreSQL roles and privileges。
角色和特权是任何对系统有意义的抽象概念。起来了 到应用程序代码,以根据授予的权限确定要采取的操作。这个 当然,可以用低级权限系统来实现,比如 行级或对象级访问控制列表(ACL)。
参数化基于角色的访问控制(prbac)添加参数 角色和特权。现在,例如,您可以授予"Reporting(organization="Dimagi",area="Finance") 到FinancialAnalyst(organization="Dimagi")。如果不使用参数,那么它就是rbac。 如果将参数与有限的选择集一起使用,那么它的功能将成倍增强。如果你 使用具有无限多个选项(例如字符串或整数)的参数 无限强大。有限参数化的一个很好的例子是 postgresql中的(SELECT,UPDATE等)可以由对象参数化。在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许可证发行的。(有关详细信息,请参见许可证文件)