小编pdo*_*eit的帖子

复杂的Righty系统:ACL,RBAC还有什么?

我们目前正在开发一个项目管理软件.我们无法确定实施安全性的正确方法.我们已经查看了ACL和RBAC,并且已经非常确定我们至少需要两者的组合才能出于特定原因.但是有两个问题在这两个世界都没有很好的解决方案.让我解释:

假设您有以下实体:

  1. 用户,具有不同的角色,即
    • 项目负责人
    • 工人
    • 管理员
  2. 项目
  3. 分配用户
  4. 项目中的任务

现在应该表达以下规则:只允许具有角色工作者的用户查看与分配给他的项目相关的任务.

这导致仅允许用户查看整个列表中的一些任务.

我们将使用RBAC为Roles提供实际读取任务的权限.但由于涉及特定实体,因此不适用该条件.可以使用ACL,但我们担心保持ACL条目符合要求的噩梦(用户可以更改,角色可以更改,可以引入新任务,必须获得正确的条目,这同样复杂).

当然,在查看特定项目时可能会有特定的查询(WHERE project_id = 123),但这对"我所有当前任务的视图"没有帮助,基本上每个任务都可以考虑显示,但是必须检查ACL每一个人.

我如何确保诸如"获取当前用户可以看到的前25个任务"之类的内容,而无需从数据库加载所有任务,然后根据ACL进行过滤,即处理分页.

php security acl rbac zend-framework2

6
推荐指数
2
解决办法
2706
查看次数

标签 统计

acl ×1

php ×1

rbac ×1

security ×1

zend-framework2 ×1