监控 Orion Context Broker 以创建新的 XACML 规则
Posted
技术标签:
【中文标题】监控 Orion Context Broker 以创建新的 XACML 规则【英文标题】:Monitoring Orion Context Broker to create new XACML rules 【发布时间】:2019-01-24 15:15:36 【问题描述】:我想知道是否可以实现这种工作环境:
我正在通过 PEP、PDP、PAP 等构建安全的 Orion 上下文代理。 我希望这样,如果 Orion 存储属性的异常值,则会发送警报(例如电子邮件),并创建一个新的 XACML 规则,以便角色用户可以看到这些值(在这种情况发生之前他没有'不必有权限才能看到它)。
有可能吗?如果是,我该如何实现? 有没有办法通过jenkins来做呢?
【问题讨论】:
【参考方案1】:如果 Orion 为某个属性存储了异常值,则会发送警报(例如电子邮件)
在这种情况下用于发送电子邮件的 FIWARE 组件将是 复杂事件处理 - 例如Perseo
您可以设置 EPL 规则来发送电子邮件
设置 XACML 规则以仅在属性为“异常”时允许访问
这看起来像一个标准的<Condition>
子句,例如:
<Condition>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-greater-than-or-equal">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
<EnvironmentAttributeSelector DataType="http://www.w3.org/2001/XMLSchema#time"
AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time"/>
</Apply>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">17:00:00</AttributeValue>
</Apply>
</Condition>
只允许在一天中的特定时间之后执行操作。
我猜你可能正在考虑在<Condition>
中使用"urn:oasis:names:tc:xacml:1.0:function:double-greater-than"
或urn:oasis:names:tc:xacml:1.0:function:integer-greater-than"
类似:
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-greater-than-or-equal">
<SubjectAttributeDesignator SubjectCategory="urn:oasis:names:tc:xacml:1.0:subjectcategory:accesssubject" AttributeId="SubjectClassificationRank" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false"></SubjectAttributeDesignator>
<ResourceAttributeDesignator AttributeId="ResourceClassificationRank" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false"></ResourceAttributeDesignator>
</Apply>
现在这是一个棘手的问题,您需要修改 PEP 代理的代码,以确保您可以传递 "abnormal" 属性的值,以便 Authzforce 进行裁决。
逻辑应该是这样的:
-
每当调用 PEP 代理 时,在 PEP 代理 中直接调用 Orion 以检索 current 属性值。李>
在您的PEP Proxy 中修改XML 创建函数以添加相关属性。
调用 Authzforce 检查请求是否被允许
这里的重点是 PEP 代理 的标准代码没有必要的信息来允许 Authzforce 进行裁决,因此您将不得不添加更多信息。
在下面的Tutorial 中出现了相同类型的更简单场景 - 这里用户的电子邮件地址被添加到 Authzforce 的请求中,您只需应用相同的原则。
【讨论】:
以上是关于监控 Orion Context Broker 以创建新的 XACML 规则的主要内容,如果未能解决你的问题,请参考以下文章
连接系统,包括 OPC UA IoT Agent、Orion Context Broker。 Cygnus 和 Postgres 的历史数据