我想知道是否有可能实现这种工作环境:
我正在通过 PEP、PDP、PAP 等构建安全的 Orion 上下文代理。我希望,如果 Orion 存储属性的异常值,则会发送警报(例如电子邮件)和新的 XACML规则已创建,因此角色用户可以查看这些值(在此之前,他不必拥有查看它的权限)。
是否可以?如果是,我该如何实现?有没有办法通过詹金斯做到这一点?
我想知道是否有可能实现这种工作环境:
我正在通过 PEP、PDP、PAP 等构建安全的 Orion 上下文代理。我希望,如果 Orion 存储属性的异常值,则会发送警报(例如电子邮件)和新的 XACML规则已创建,因此角色用户可以查看这些值(在此之前,他不必拥有查看它的权限)。
是否可以?如果是,我该如何实现?有没有办法通过詹金斯做到这一点?
如果 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 可以进行裁决。
逻辑需要是这样的:
这里的重点是PEP 代理的标准代码没有必要的信息来允许Authzforce进行裁决,因此您将不得不添加更多信息。
在下面的教程中会出现一个相同类型的更简单的场景- 这里用户的电子邮件地址被添加到对Authzforce的请求中,您只需要应用相同的原则。