支持XACML 3.0中的时间数学和时区

时间:2016-05-03 17:21:05

标签: time authorization xacml abac pdp

我希望获得有关XACML版本3的PDP流程决策的一些见解,这些决策涉及基于时间窗口的决策的处理,特别是它如何与时区字段支持一起使用,这是规范的一部分。

对于政策,我用来定义这样的时间事件:HH:MM:SS-Tz:00

例如,我们可以谈谈位于纽约市的数据中心目前在东部夏令时(EDT)下运行的UTC -4小时, 而在西海岸,旧金山地区的客户在UTC -7小时,也使用DST调整。此外,我们可能会看到来自圣保罗的UTC-3无DST。

如何定义授权访问窗口以涵盖每个位置的营业时间内的所有服务交付?我们是应该在UTC(+00:00)下宣布它还是PDP在政策处理期间进行所需的转换,例如在18:00:00-07:00(旧金山的一天结束),这将映射到01:00:00 UTC作为服务提供的最终限制,翻译回纽约时间为21:00:00-04:00。

我认为请求将在本地时间生成,也会引用本地时间。

我们是否可以在XACML PDP下推动基于中心时间的决策,或者更好地在每个办公室和时区基础上应用多个策略,例如为每个城市使用单独的策略,例如:San Francisco,São保罗和纽约?然而,类似的担忧是亚洲时区的支持,显示小时数。是否提供了一个文档,阐明了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>

1 个答案:

答案 0 :(得分:0)

您必须拥有可以解决每个位置的打开和关闭时间的PIP。

XACML请求不会发送任何时间戳。相反,XACML请求将是:

  • Alice可以在Y办公室办X吗?

PDP将包含一个政策,如果openTime&lt; currentTime&lt; closeTime。

将根据办公室Y从PIP读取属性openTime和closeTime。

所有3个属性,openTime,closeTime和currentTime都需要时区信息,以便充分实现比较。