基于角色的访问控制与Pyramid
我正在考虑用Pyramid来搭建一个中等规模的网页应用。我需要实现一种叫做角色基础访问控制(RBAC)的功能。请问最好的选择是什么?我能不能使用Zope的组件呢?
1 个回答
3
Pyramid 实现了一种访问控制列表(ACL)授权策略,这种策略将用户与权限进行关联。
- 用户(我们称之为“主体”)是可以由你自己设置的,可以根据请求(用户)来定义。
- 权限是一个字符串,和特定的视图或“操作”绑定在一起。
也许我理解错了,但角色基础访问控制(RBAC)似乎与这个想法很契合。我知道 RBAC 通常是一个全局的政策,而 ACL 通常是根据上下文来决定的,因此与数据相关。不过这并不是个大问题,主要看你打算如何构建你的应用程序。
你也可以相对简单地实现自己的 RBACAuthorizationPolicy
。在 Pyramid 中,它会接收主体和权限,然后你可以查询你的访问映射,以决定是否返回 Allowed
(允许)或 Denied
(拒绝)的结果给那个用户。