2

我想知道是否有可能实现这种工作环境:

我正在通过 PEP、PDP、PAP 等构建安全的 Orion 上下文代理。我希望,如果 Orion 存储属性的异常值,则会发送警报(例如电子邮件)和新的 XACML规则已创建,因此角色用户可以查看这些值(在此之前,他不必拥有查看它的权限)。

是否可以?如果是,我该如何实现?有没有办法通过詹金斯做到这一点?

4

1 回答 1

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>

只允许在一天中的某个时间之后执行操作。

我猜你可能正在考虑使用"urn:oasis:names:tc:xacml:1.0:function:double-greater-than"或类似urn:oasis:names:tc:xacml:1.0:function:integer-greater-than"<Condition>东西:

<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 代理的代码,以确保您可以传递“异常”属性的值,以便 Authzforce 可以进行裁决。

逻辑需要是这样的:

  1. 每当调用PEP 代理时,在PEP 代理中直接调用 Orion 以检索当前属性值。
  2. 在您的PEP 代理中修改 XML 创建函数以添加相关属性。
  3. 调用 Authzforce 检查请求是否被允许

这里的重点是PEP 代理的标准代码没有必要的信息来允许Authzforce进行裁决,因此您将不得不添加更多信息。

在下面的教程中会出现一个相同类型的更简单的场景- 这里用户的电子邮件地址被添加到对Authzforce的请求中,您只需要应用相同的原则。

于 2019-01-25T15:15:36.577 回答