设计一个复杂的访问/权限系统,我应该采取什么方法

时间:2011-07-30 00:26:42

标签: web-applications acl access-control rbac

我现在正在使用PHP + MySQL,但真的可以采用任何工具。

我有一个约有50000个用户的系统,这些用户被安排成组,这些系统被安排到组织中的部门中。

我的系统内容包中有。每个包都有特定权限。即每个包都是

  1. public(world),
  2. 财团(全部注册到我的系统)
  3. 私人(可以通过单个用户+组+部门+组织的任意组合访问)
  4. 为了使事情变得更难,每个内容可能都有一个必备内容,这意味着在你拿到内容A(大学里的课程......)之前你不能拿内容B.

    我想知道如何管理它,现在每个东西都在MySQL中工作正常,只是每次我创建一个具有先决条件的内容时我必须能够选择那些先决条件只有那些内容件更多允许访问,这意味着我在系统中的每个部分进行了大量的计算(我有几千个)。

    现在,想象一下,我有内容c取决于B,这取决于A ...
    我向每个用户展示的目录是什么?当用户搜索整个系统时,对每个内容块必须进行的计算成像。

    任何方向/建议/已知系统已经这样做了吗?

1 个答案:

答案 0 :(得分:0)

我意识到这个问题已经过去2年了,到现在为止你已经解决了这个问题。不过,这里有一些指导可以帮助你解决你所面临的问题。

您需要外化授权逻辑和业务逻辑。这意味着您要查看业务规则引擎和授权规则引擎。

该空间的标准是BPEL(用于业务流程)和XACML(用于授权)。

您可以使用XACML来确定谁可以查看/编辑/拍摄某些内容。您可以使用BPEL(或BPM语言)来确定有关参加课程的规则。