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