Security 协作软件中的安全性(协作组)

Security 协作软件中的安全性(协作组),security,symfony,architecture,Security,Symfony,Architecture,假设我有对象A、B、C、D、E、F、协作者组C1、C2、用户C1U1(管理员)、C1U2(用户)、C2U1(管理员)、C2U2(用户) A、 C,E属于组C1。 B、 D,F属于C2组 因此,只有相应组的成员才能查看各自的对象。此外,创建的任何对象最终都位于其创建者(用户)所属的组中 管理员可以创建和编辑每个实体,用户只能创建实体,也只能编辑他的实体 当然,如前所述,每个用户(管理员或普通用户)只能查看属于其组的实体 在我的特定任务中,有实体类型的数量(静态)和用户类型的数量(静态)。将有多个协

假设我有对象A、B、C、D、E、F、协作者组C1、C2、用户C1U1(管理员)、C1U2(用户)、C2U1(管理员)、C2U2(用户)

A、 C,E属于组C1。 B、 D,F属于C2组

因此,只有相应组的成员才能查看各自的对象。此外,创建的任何对象最终都位于其创建者(用户)所属的组中

管理员可以创建和编辑每个实体,用户只能创建实体,也只能编辑他的实体

当然,如前所述,每个用户(管理员或普通用户)只能查看属于其组的实体

在我的特定任务中,有实体类型的数量(静态)和用户类型的数量(静态)。将有多个协作组(动态),用户将在其中创建一些实体。一些用户只能查看实体(由于是相应协作组的成员,他们有权查看实体)、创建和编辑实体。其中一些用户将能够编辑其他用户的实体(但仅限于ceratin类型的实体)。本质上它有点像吉拉

也就是说,我的问题很简单:什么样的模式有助于组织这些东西?我相信这是一个普遍的问题,因此它必须有共同的名称

我知道有一种直截了当的方法可以做到这一点。我使用的是symfony2,它有RBAC和ACL,但没有rbaclafaik。RBAC将帮助我处理用户类型(我使用用户组并创建角色,如ROLE\u EDIT\u ENTITYTYPE1),使用ACL检查所有权

但是我如何实现这些协作组呢

我很抱歉,若我的解释听起来含糊不清或只是愚蠢或其他任何事情,我想听到任何关于这个主题。我有种感觉,我错过了一些东西


注:如果“安全”标签与此问题相关,则不确定该标签。

对于您的情况,仅角色层次结构是不够的。您需要的是完整的ACL:

保存实体时,可以在侦听器中创建ACL权限,然后为所有组成员授予访问权限

您还可以使用不同的ACL掩码,以控制哪些用户可以编辑实体,哪些用户只能查看实体:


很抱歉,主要是链接到默认文档,但我认为这基本上涵盖了您需要的所有内容。

对于您的情况,仅仅角色层次结构是不够的。您需要的是完整的ACL:

保存实体时,可以在侦听器中创建ACL权限,然后为所有组成员授予访问权限

您还可以使用不同的ACL掩码,以控制哪些用户可以编辑实体,哪些用户只能查看实体:

很抱歉主要链接到默认文档,但我认为这基本上涵盖了您需要的所有内容