使用 Authzforce 实现 geo XACML 并将其托管在 heroku 上

Implement geo XACML using Authzforce and host it on heroku

我对这两个主题都是全新的。有人可以通过分步教程帮助我实现它们吗? 也可以建议两者的替代方案。

首先提醒一句:GeoXACML 规范是作为 XACML 2.0 的扩展编写的,因为它是当时 XACML 的最后一个版本(最后一个 GeoXACML 版本可以追溯到 2011 年)。现在,AuthzForce 只支持 XACML 3.0。然而,这没什么大不了的,GeoXACML 中使用的 XACML 2.0 术语和模型元素可以很容易地适应 XACML 3.0(特别是对 XACML 架构的一些更改)。如果您对该过程有疑问,请告诉我们。如果您仍在使用 XACML 2.0,我强烈建议无论如何迁移到 XACML 3.0。

回到最初的问题,假设您同意在 XACML 3.0 中使用 GeoXACML,您只需使用两种 AuthzForce extensions:

即可在 AuthzForce 中实现它
  • XACML 数据类型:顾名思义,这是您必须在 AuthzForce 中实现的一种扩展,以支持 GeoXACML 规范 v1.0.1 的第 6.3.1 节中定义的新数据类型。请参阅 AuthzForce 的 github 存储库中的 wiki page 以了解如何开发此类扩展。
  • XACML 函数:顾名思义,这是您必须在 AuthzForce 中实现的一种扩展,以支持 GeoXACML 规范 v1.0.1 的第 6.3.2 节中定义的新函数。请参阅 AuthzForce 的 github 存储库中的 wiki page 以了解如何开发此类扩展。

至此,我想你已经满足了。

如果您在开发扩展时遇到特定于 AuthzForce 的问题,请使用 support channels mentioned on the github(或 github 问题)之一。

我已经审阅了您在整个讨论帖中的问题和评论。我知道您完全是 XACML 的新手。考虑到这一点,我将在我的回答中寻求提升您对 XACML 以及如何集成 GeoXACML 或在您的政策中普遍实施地理限制的理解。

了解 XACML

XACML 策略语言与自然语言一样富有表现力。例如,考虑以下句子:

Jane Doe wants to view a confidential document at work during regular business hours.

像这样的句子包含四个语法构建块:

– 一个主题

– 一个动作

– 一个资源

– 请求的环境

这些“构建块”中的每一个都可以使用属性来描述。

要为组织创建授权策略,您需要从负责定义信息安全策略的个人那里收集需求。

接下来您将采用负责授权策略的人员提供的策略并识别属性。

我们通常会考虑定义:

  • 简称:属性的用户友好名称,例如角色或 国籍。它是通常显示在编辑器中的名称, 报告工具。

  • 命名空间:属性所属的上下文。命名空间 遵循反向域名符号命名约定,就像我们 在 Java 中使用。所以,如果我们有 com.organization.user,我们可以追加一个 类似于角色的短名称,用于创建完全限定的 XACML 属性 标识符 com.organization.role.

  • 类别:一个直接来自 XACML 的概念,表示 属性总是属于一个类别。常用的有4种 类别:主题、行动、资源和环境;他们是 在我们教程的第 2 步中定义。

  • 数据类型:数据的一种分类。属性值可以是 XACML 中的不同类型。最常用的是字符串,整数, 和布尔值。有十几种数据类型可供选择。

  • 值范围:一个可选字段,用于指定模式或范围 提供的值。属性值可能是完全随机的(例如 用户的名字)。其他属于固定值列表,例如 状态名称或模式,例如邮政编码。

有关在组织中实施 ABAC 的更多信息,请查看我在雇主网站上写的博客 post:https://www.axiomatics.com/blog/intro-to-attribute-based-access-control-abac/

我也有一篇文章 on my personal blog based on a Whosebug question, "”。答案提供了 XACML 和 ABAC 的另一个很好的总体概述。

一般关于 GeoXACML 和地理限制

我不确定您的确切用例,但我想提一下 ipAddress 是 XACML 中的一种数据类型,以防它适合您的用例(即您的系统遇到未路由的 IP 地址通过 VPN 或其他 ip 混淆方法等)。可以在此处找到数据类型列表:http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html

我不知道有任何软件提供开箱即用的 GeoXACML 和企业级 XACML 实现。我们在 Axiomatics(我的雇主)这里可以提供的是扩展我们的软件 Axiomatics Policy Server,以便您根据自己的喜好包含 GeoXACML 或什至其他地理特征。 (注意:当我的同事 David Brossard 在上面的评论中建议您 "try Axiomatics PS," 它代表 Axiomatics Policy Server。)

XACML中的"X"代表可扩展。而且,事实上,该模型的可扩展性足以提供执行此类操作所需的灵活性。

XACML 核心规范 3.0 版实际上有一个名为 XACML 扩展点的部分,其中列出了 XACML 模型和模式可以使用新语义进行扩展的所有点。扩展点是:

  • 类别
  • AttributeId
  • 数据类型
  • 函数编号
  • MatchId
  • ObligationId
  • AdviceId
  • PolicyCombiningAlgId
  • RuleCombiningAlgId
  • 状态码
  • 主题类别

您可以在 Whosebug 上或通过所提供网站上的联系页面跟进任何问题。

最好的, 迈克尔