Authentication 基于资源的访问控制与基于角色的访问控制

Authentication 基于资源的访问控制与基于角色的访问控制,authentication,access-control,rbac,Authentication,Access Control,Rbac,我正在学习ApacheShiro,我发现了这篇文章: 作者说: ……如果您愿意,您可以将行为(权限)直接分配给角色 希望从这个意义上讲,您仍然可以使用基于角色的访问控制 安全策略-只是您将有一个明确的RBAC策略 而不是传统的隐性策略 但这就引出了一个问题——为什么要停留在角色上?您可以指定 直接向用户、组或您的任何其他对象发送行为 安全策略可能允许 似乎作者更喜欢直接存储用户和权限的关系,而不是通过角色 虽然这看起来简单明了,但我有一些问题: 它们之间有什么本质的区别吗 数据库架构 在基于角

我正在学习ApacheShiro,我发现了这篇文章:

作者说:

……如果您愿意,您可以将行为(权限)直接分配给角色 希望从这个意义上讲,您仍然可以使用基于角色的访问控制 安全策略-只是您将有一个明确的RBAC策略 而不是传统的隐性策略

但这就引出了一个问题——为什么要停留在角色上?您可以指定 直接向用户、组或您的任何其他对象发送行为 安全策略可能允许

似乎作者更喜欢直接存储用户和权限的关系,而不是通过角色

虽然这看起来简单明了,但我有一些问题:

  • 它们之间有什么本质的区别吗

  • 数据库架构

  • 在基于角色的访问控制中,通常我们使用三个表来描述关系:

    user
    role
    user_role
    

    否如果使用基于资源的访问控制,构建表的正常做法是什么

    这是我第一次听说基于资源的访问控制

    我会非常小心地走这条路。在授权领域,基本上有两个标准:

    • 基于角色的访问控制(RBAC)由数千个应用程序和框架标准化并在主要供应商(CA、Oracle、IBM…)的支持下实施
    • 基于属性的访问控制(ABAC)由IBM、Oracle和Axiomatics等供应商(也)标准化,并同样得到了很好的实施,而Axiomatics正是我工作的地方
    基于资源的访问控制似乎是Stormpath发明的一种模型,并且仅由他们支持。这可能很好,但只适用于他们的环境

    基于角色和基于属性的访问控制是NIST和其他标准化机构(如OASIS)支持的公认范例(SAML和XACML在10年前就在OASIS中定义,现在仍然得到支持)

    问题是:为什么基于角色的访问控制对您来说还不够?您是否有角色爆炸问题?是不是表达不够?您是否需要实现用户、资源和上下文之间的关系

    ABAC和XACML可以让你做到这一点。不久前,我在YouTube上发布了一段简单的视频,内容涉及基于属性的访问控制。祝你好运


    归根结底,RBAC和ABAC是跨多个应用程序和层工作的标准。基于资源的访问控制只针对ApacheShiro。

    ABAC XACML是我所知道的最好的现有系统。阅读本文可能有助于更好地理解主题:有关更多详细信息,请阅读本文:当参数在路由中演化时,这是如何工作的?在我们处理请求之前,我们现在可能无法访问资源,对吗?在这种情况下,什么被认为是最佳实践?@DavidBrossard,你能建议如何获得XACML的Axiomatic APS试用版吗?你建议的链接()没有给我任何确认电子邮件。谢谢。请发电子邮件给我info@axiomatics.com他们应该能帮助你