Поддержка математики времени и часового пояса в XACML 3.0

Я хотел бы получить некоторое представление о решениях процесса 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>

person Claude Falbriard    schedule 03.05.2016    source источник


Ответы (1)


У вас должен быть PIP, который будет определять время открытия и закрытия для каждого местоположения.

Запрос XACML не отправляет ни одной отметки времени. Скорее, запрос XACML будет примерно таким:

  • Может ли Алиса сделать X в офисе Y?

PDP будет содержать политику, которая гласит Разрешить, если openTime ‹currentTime‹ closeTime.

Атрибуты openTime и closeTime будут считываться из PIP на основе офиса Y.

Все 3 атрибута, openTime, closeTime и currentTime, нуждаются в информации о часовом поясе, чтобы сравнение могло быть адекватным.

person David Brossard    schedule 10.05.2017