2

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

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

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

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

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

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

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

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

谢谢!

4

1 回答 1

0

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

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

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

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

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

ColdFusion:基于角色的应用程序选项?

于 2011-07-19T16:59:18.963 回答