Я хотел бы получить некоторое представление о решениях процесса PDP для XACML версии 3, касающихся обработки решений на основе временных окон, особенно о том, как это работает с поддержкой поля часового пояса, которая является частью спецификации.
В качестве политики я использую для определения временных событий следующим образом: ЧЧ: ММ: СС-ТЗ: 00
В качестве примера мы могли бы говорить о центре обработки данных, расположенном в городе Нью-Йорк, в настоящее время в UTC -4 часа, работающем по восточному летнему времени (EDT), в то время как есть клиенты на западном побережье, в районе Сан-Франциско, в UTC -7 часов, также используя настройку летнего времени. Далее мы можем увидеть доступ из Сан-Паулу в UTC-3 без DST.
Как определить окно авторизованного доступа, чтобы охватить все предоставление услуг в рабочее время каждого местоположения? Должны ли мы объявить это в формате 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>