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

Posted

技术标签:

【中文标题】使用 Authzforce 实现 geo XACML 并将其托管在 heroku 上【英文标题】:Implement geo XACML using Authzforce and host it on heroku 【发布时间】:2018-10-27 06:52:58 【问题描述】:

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

【问题讨论】:

试试 Axiomatics PS 能否提供更多详细信息 一个很好的例子或教程会很受欢迎。 【参考方案1】:

首先警告一句: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。

回到最初的问题,假设您同意将 GeoXACML 与 XACML 3.0 一起使用,您可以在 AuthzForce 中仅使用两种AuthzForce extensions 来实现它:

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 教程(在深入实施扩展之前)?如果您开始进入 XACML 之旅,那么立即开始实施 GeoXACML 可能不是最简单的方法。【参考方案2】:

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

了解 XACML

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

Jane Doe 想在正常工作期间查看一份机密文件 营业时间。

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

——一个主题

——一个动作

——资源

– 发出请求的环境

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

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

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

我们通常着眼于定义:

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

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

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

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

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

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

我还有一篇基于 *** 问题“How to authorize specific resources based on users who created those in REST, using annotations?”的文章 on my personal blog。答案总体上提供了对 XACML 和 ABAC 的另一个很好的概述。

关于 GeoXACML 和一般地理限制

我不确定您的确切用例,但我想提一下 ipAddress 是 XACML 中的一种数据类型,以防它适合您的用例(即您的系统遇到未通过 *** 路由的 IP 地址或其他 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 在上述评论中建议您“尝试 Axiomatics PS”时,它代表 Axiomatics Policy Server。)

XACML 中的“X”代表可扩展。而且,确实,该模型具有足够的可扩展性,可以提供执行此类操作所需的灵活性。

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

类别 属性标识 数据类型 函数 ID 匹配 ID 义务 ID AdviceId PolicyCombiningAlgId RuleCombiningAlgId 状态码 学科类别

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

最好, 迈克尔

【讨论】:

感谢您的回复。我能够使用 balana 实现 XACML。但我仍然不知道如何在其中整合地理空间特征。非常感谢您的帮助。 Charmi,您需要什么地理空间特征?由于此处评论的限制,您想在 SO 上向我发送消息或通过 mgood@axiomatics.com 与我联系以继续对话吗?

以上是关于使用 Authzforce 实现 geo XACML 并将其托管在 heroku 上的主要内容,如果未能解决你的问题,请参考以下文章

Cosmos 中的 AuthZForce FIWARE

AuthZforce 在没有固件启用程序的情况下使用

AuthzForce 更新策略失败

Authzforce - 用于策略管理 (PAP) 的现有 GUI

XACML Authzforce PDP 自定义策略

AuthZForce 安全级别 2:基本授权错误“未为应用程序创建 AZF 域”