为了证明概念,我想存储权利。我知道访问控制有不同的方式(DAC,MAC,RBAC等)。我的第一个想法是使用数据库,但是我正在寻找一些更完善的标准,例如XACML,但不幸的是,我还没有找到真正的替代方案。
感谢您的小费!

最佳答案

首先,退后一步,看看可比较的项目。

在访问控制中,随着时间的推移,您会使用不同的模型。从历史上看,您首先拥有DAC和MAC。您有访问控制列表的概念(也称为基于身份的访问控制或IBAC)。

然后突然,用户的唯一身份不再足够。我们开始将用户分为角色和组。这导致创建了RBAC或基于角色的访问控制,NIST正式将其标准化为标准。

快进10年以上,角色已经不足够了。 ACL和RBAC也是以用户为中心的。它们不适合上下文或关系。它们的粒度不够细。出现了一种称为ABAC或基于属性的访问控制的新模型。 NIST也正在对ABAC进行标准化。 ABAC能够实现任何类型的访问控制要求,并且可以满足用户,资源,操作和上下文属性。

您可以在ABAC here上阅读更多内容。

那么,XACML呢? XACML-eXtensible Access Control Markup Language-是ABAC模型的实现。它是ABAC实现最广泛的实现。您问是否有其他选择。我想到的一些包括:

  • SecPal:这是Microsoft研究计划。据我所知,它不是在外部研究中使用的。
  • Permis是基于策略的访问控制模型。它也没有广泛传播。
  • Microsoft对于Windows Server具有自己的语言,称为SDDL。您可以阅读more on that from Microsoft

  • 但是在实践中,我见过的大多数ABAC实现都使用XACML或本地代码+ RBAC的混合。不用说,后者并不能很好地扩展并且很难维护。

    如果您想了解更多信息,请查看以下资源:
  • my own personal blog
  • 我的个人SlideShare
  • 关于authorization - 如何存储权利? XACML的替代品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26594816/

    10-13 03:28