【问题标题】:"objects" in a RBAC systemRBAC 系统中的“对象”
【发布时间】:2011-10-07 22:11:04
【问题描述】:

我正在为我的工作中的 Web 应用程序寻找基于角色的身份验证。我们使用coldfusion,它似乎没有制作任何好的rbac库,所以我们可能不得不从头开始制作。

查看示例数据模型,对象与权限相关联。

http://www.mind-it.info/2010/01/09/nist-rbac-data-model/

它看起来像是对象和权限之间的一对多关系,这是有道理的。

但是,我想知道这些“对象”应该是抽象的还是具体的?

我们的系统将有一些有限类型的对象;例如,让我们说“新闻”、“事件”和“专辑”。权限和角色很可能归属于这些类型,因为任何这些类型的所有对象实例都需要不同角色的相同权限和可访问性。

在我查看的示例中,在我看来,对象的每个实例都附加到权限。如果是这样的话,我看到这种类型的系统有很多开销......

所以,我想知道这些“对象”是否实际上是与角色相关联的抽象对象类型,或者这些“对象”是否是实际的对象实例本身? (或者,如果 rbac 模型允许任一实现......)

谢谢!

【问题讨论】:

  • 你看过吗?

标签: security coldfusion permissions roles rbac


【解决方案1】:

您绝对应该将权限绑定到对象。是的,在开发时会有一些开销,但这是迄今为止最好的情况。

考虑一下,当您开发“添加新闻项目”功能时,您创建了一个名为“addNewsItem”之类的权限。然后,您只需将该权限与您希望拥有该能力的角色联系起来。

这个系统的美妙之处在于,一旦您编写了与对象相关的权限(如添加项),您就无需在用户或角色发生变化时对其进行更改。 “添加新闻项目”将始终需要“addNewsItem”权限。这永远不会改变。

例如,如果您使用角色包装您的对象,并且您决定添加一个新角色 - 您将进入并更改代码以允许该角色获得任何权限。呸。

它实际上很容易实现。这是我写的关于实现的一些基础知识的帖子:

ColdFusion: Application Options Based on Role?

【讨论】:

    猜你喜欢
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    相关资源
    最近更新 更多