我想了解有关 XACML 版本 3 的 PDP 流程决策的一些见解,其中涉及基于时间窗口的决策的处理,特别是它如何与作为规范一部分的时区字段支持一起工作。
对于策略,我使用这样定义时间事件:HH:MM:SS-Tz:00
例如,我们可以谈论一个位于纽约市的数据中心,目前在东部夏令时 (EDT) 下运行在 UTC -4 小时,而在西海岸、旧金山地区在 UTC -7 小时存在客户,也使用 DST 调整。此外,我们可能会在没有 DST 的情况下在 UTC-3 看到来自圣保罗的访问。
如何定义授权访问窗口以覆盖每个地点工作时间内的所有服务交付?我们应该在 UTC (+00:00) 下声明它还是 PDP 在策略处理期间进行所需的转换,例如在 18:00:00-07:00(旧金山的一天结束),这将映射到01:00:00 UTC 作为服务交付的最终限制,转换回纽约为 21:00:00-04:00。
我假设请求将在本地时间生成,也参考本地时间。
我们能否在 XACML PDP 下推动基于中央时间的决策,或者在每个办公室和时区基础上应用多个策略更好,例如为每个城市使用单独的策略,例如:旧金山、圣保罗和新约克?然而,类似的担忧是对显示几分之一小时的亚洲时区的支持。是否有可用的文档来澄清 XACML 下与时间数学相关的疑问?
时间窗口决策的示例规则
<Rule Effect="Deny" RuleId="DenyOutsideOfficeHours">
<Target></Target>
<Condition>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
<Apply FunctionId="urn:oasis:names:tc:xacml:2.0:function:time-in-range">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
<AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time" DataType="http://www.w3.org/2001/XMLSchema#time" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" MustBePresent="false"></AttributeDesignator>
</Apply>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-bag">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">08:00:00-03:00</AttributeValue>
</Apply>
</Apply>
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-bag">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">18:00:00-03:00</AttributeValue>
</Apply>
</Apply>
</Apply>
</Apply>
</Condition>
<ObligationExpressions>
<ObligationExpression ObligationId="obligation.displayAttributes" FulfillOn="Deny">
<AttributeAssignmentExpression AttributeId="urn:oasis:names:tc:xacml:3.0:example:attribute:text" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">access to resource is limited to office hours between 08:00 to 18:00 GMT-3</AttributeValue>
</AttributeAssignmentExpression>
</ObligationExpression>
</ObligationExpressions>
</Rule>