通过Pyramid实现基于角色的访问控制

4

我在考虑使用Pyramid来构建一个中等规模的Web应用程序。我需要实现RBAC(基于角色的访问控制)。什么是最好的选择?是否可以使用Zope组件?


在应用程序中实现RBAC的目标是能够将某些权限委派给用户,这意味着用户可以授权另一个用户执行所有可用的操作。RBAC还允许角色层次结构,这是一个非常强大的概念。我没有找到任何可以帮助的Python模块... - gpasse
我不熟悉Pyramid,但我在我的Flask项目中使用以下库:https://github.com/muratgozel/py-rbac - muratgozel
1个回答

3

Pyramid实现了一个ACL授权策略,将主体映射到权限。

  1. 主体由您进行配置,可以表示任何您喜欢的内容,并从请求(用户)本身派生。
  2. 权限是附加到单个视图或“操作”的字符串。

也许我错了,但RBAC似乎很自然地适合这个想法。我知道RBAC倾向于成为全局策略,而ACL通常是上下文相关的,因此与数据相关联。不过这并不是问题,具体取决于您计划如何构建应用程序的其余部分。

您还可以相当简单地实现自己的RBACAuthorizationPolicy。在Pyramid中,它将传递主体和权限,然后您可以查询访问映射以确定是否为该用户返回AllowedDenied值。


我找到了包含角色的Python ACL。https://github.com/limscoder/Python-ACL/ 和 https://github.com/kyleterry/simpleacl-py - gpasse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接