寻找实现基于属性的访问控制 (ABAC) 的方法

信息安全 访问控制 授权 算盘
2021-08-24 21:00:38

我们正在寻求实现基于属性的访问控制。虽然我们对哲学很感兴趣,但似乎突然出现了两个主题:

  • 它会导致严重的性能问题吗?特别是如果我们寻求细粒度的访问。我想我正在寻找一些结构化的指导来达到正确的平衡。
  • 是否有可用的 PEP 能够实施 XACML?我检查过 IBM 和 Oracle 的同事对它已经为企业做好准备并不感到很舒服。
1个回答

免责声明:我为领先的 ABAC/XACML 供应商 Axiomatics 工作。

我很高兴听到您对 ABAC 的理念赞不绝口。如果您还没有这样做,请查看以下资源(我会为您提供商业链接):

现在,直接针对您的问题:

  • 如果我们寻求细粒度的访问,它会导致严重的性能问题吗?当您规划和构建 ABAC 解决方案时,您要考虑的两个要点可能对性能影响最大的是 PEP 到 PDP 通信链路(其中 PEP 是保护您的应用程序的执行点,而 PDP 是决策点处理授权请求并评估授权策略)和 PDP 到 PIP 的链接(其中 PIP 或策略信息点是属性源的桥梁,例如 LDAP、数据库、Web 服务)。政策评估本身并不昂贵。访问是否细粒度不一定会影响性能。但是,您将如何公开授权服务(PDP)。如果您公开为 SOAP 服务,那么您将引入 SOAP 服务的延迟。如果您通过二进制协议公开它,例如 Apache Thrift 那么性能要好得多。类似地,如果您需要从 10 个不同的源中检索 10 个属性,并且如果每个源都有很长的延迟,那么性能将会很差。但您始终可以选择捆绑属性查找、合并属性源和缓存属性值。底线是,如果架构正确,ABAC 可以正确执行。举个例子,PayPal 使用基于属性的访问控制,它们的性能很好。一些较大的财富 50 强公司都使用 ABAC,同时具有严格的性能要求。下图说明了可以提高性能的所有 6 个点。但您始终可以选择捆绑属性查找、合并属性源和缓存属性值。底线是,如果架构正确,ABAC 可以正确执行。举个例子,PayPal 使用基于属性的访问控制,它们的性能很好。一些较大的财富 50 强公司都使用 ABAC,同时具有严格的性能要求。下图说明了可以提高性能的所有 6 个点。但您始终可以选择捆绑属性查找、合并属性源和缓存属性值。底线是,如果架构正确,ABAC 可以正确执行。举个例子,PayPal 使用基于属性的访问控制,它们的性能很好。一些较大的财富 50 强公司都使用 ABAC,同时具有严格的性能要求。下图说明了可以提高性能的所有 6 个点。一些较大的财富 50 强公司都使用 ABAC,同时具有严格的性能要求。下图说明了可以提高性能的所有 6 个点。一些较大的财富 50 强公司都使用 ABAC,同时具有严格的性能要求。下图说明了可以提高性能的所有 6 个点。
    • 策略如何加载到内存中 (1)
    • 如何评估策略(2):如果您构建了一个良好的策略结构,您可以在完全评估之前快速消除多达 90% 的授权策略。
    • 如何从 PIP 中获取属性值 (3)。如前所述,这是要考虑的要点。有几种技术可以降低这种集成对性能的影响
    • 如何在 PEP 端缓存授权决策 (4)。
    • 如何将授权请求捆绑到一个多决策请求中:这可以节省 PEP 和 PDP 之间的往返 (5)
    • 最后,或许也是最重要的一点,PEP 和 PDP 如何通信——如前所述。只需选择最适合您的协议(嵌入式、二进制、SOAP...)(6) XACML 架构 - 性能点 - © Axiomatics
  • 是否有可用的 PEP 能够实施 XACML?是的,当然有。一些供应商,如 Axiomatics(可能不是甲骨文或 IBM 等大公司)和开源实现提供 PEP。请参阅此列表作为示例也有与现成组件的集成。例如,Fedora 为其操作系统提供了一个。SAP 有一个。Axiomatics 为 SQL 数据库(Oracle、SQL Server...)提供了一个。还可以保护 SharePoint 和 Liferay 等 CMS。另请查看OpenAZ项目。

您的同事是否只研究过 IBM 和 Oracle?主要参与者绝对不是那两个,而是较小的供应商和开源社区。

正如 Gartner 最近所说,ABAC 是要走的路。他们预测,到 2020 年,70% 的组织将采用 ABAC。现在是开始的好时机。