Чем XACML 3.0 отличается от XACML 2.0?

Я рассматриваю возможность переноса моего клиентского приложения с использования службы авторизации XACML 2.0 на использование более новой службы XACML 3.0.

С какими изменениями или проблемами я столкнусь при переносе моего клиентского приложения с выполнения запросов XACML 2.0 на выполнение запросов XACML 3.0?


person dthorpe    schedule 01.11.2011    source источник
comment
Меня постоянно спрашивают об этом, поэтому я публикую это здесь как FAQ по SO.   -  person dthorpe    schedule 02.11.2011


Ответы (3)


Самая большая разница между XACML 2.0 и XACML 3.0 для вашего клиентского приложения заключается в том, что структура атрибутов в запросе проверки подлинности значительно изменилась в XACML 3.0.

В XACML 2.0 атрибуты были организованы в категории темы, ресурса, среды или действия с использованием тегов элементов XML:

<?xml version="1.0" encoding="UTF-8"?>
<Request  xmlns="urn:oasis:names:tc:xacml:2.0:context:schema:os"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:oasis:names:tc:xacml:2.0:context:schema:os  access_control-xacml-2.0-context-schema-os.xsd">
        <Subject>
            <Attribute
                  AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
                  DataType="http://www.w3.org/2001/XMLSchema#string">
                <AttributeValue>Julius Hibbert</AttributeValue>
            </Attribute>
        </Subject>
        <Resource>
            <Attribute
                  AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
                  DataType="http://www.w3.org/2001/XMLSchema#anyURI">
                <AttributeValue>http://medico.com/record/patient/BartSimpson</AttributeValue>
            </Attribute>
        </Resource>
        <Action>
            <Attribute
                  AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
                  DataType="http://www.w3.org/2001/XMLSchema#string">
                <AttributeValue>read</AttributeValue>
            </Attribute>
        </Action>
        <Environment/>
</Request>

В XACML 3.0 эти категории указываются с использованием атрибутов XML вместо тегов элементов XML:

<?xml version="1.0" encoding="utf-8"?>
<Request xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd" ReturnPolicyIdList="false" CombinedDecision="false" xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
    <Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id">
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Julius Hibbert</AttributeValue>
    </Attribute>
  </Attributes>
  <Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
    <Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id">
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">http://medico.com/record/patient/BartSimpson</AttributeValue>
    </Attribute>
  </Attributes>
  <Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action">
    <Attribute IncludeInResult="false" AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id">
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
    </Attribute>
  </Attributes>
  <Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" />
</Request>

Например, элемент <Subject> в XACML 2.0 становится <Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"> в XACML 3.0. То же самое для категорий ресурсов, среды и действий.

Это структурное изменение упрощает модель обработки для обработки запросов и упрощает расширение модели с помощью настраиваемых категорий для конкретных приложений или доменов без нарушения проверки схемы.

В XACML 3.0 определены новые типы данных и функции для использования в определениях политик. Тип данных AnyURI теперь отличается от строкового типа данных. Несколько алгоритмов объединения 2.0 устарели в пользу новых эквивалентов 3.0, которые более точно определяют, как неопределенные состояния распространяются вверх по дереву решений политики. Старые алгоритмы комбинирования по-прежнему включены как «устаревшие» артефакты.

Запросы и политики XACML 2.0 могут быть механически преобразованы в формат XACML 3.0 без потери информации. Преобразование ответа 3.0 обратно в формат 2.0 выполнимо, если вы придерживаетесь простых ответов «разрешить/запретить».

person dthorpe    schedule 01.11.2011

Пожалуйста, проверьте вики OASIS XACML TC для официального списка различий:

"Различия между XACML 2.0 и XACML 3.0"

В двух словах...

Основное различие между XACML 2.0 и XACML 3.0 заключается в новых функциях, таких как

  • выражения обязательств: вы можете иметь динамические части в ваших заявлениях об обязательствах
  • введение рекомендаций, которые фактически обобщают обязательства на более широкую сферу
  • введение XACML v3.0 Administration и Профиль делегирования версии 1.0. На сегодняшний день Axiomatics и ViewDS (http://www.viewDs.com) являются единственными полными реализациями XACML 3.0, включающими делегация. Это ключевая функция для облачных и федеративных развертываний. Модель делегирования является результатом более чем пяти лет исследований и разработок в Шведском институте компьютерных наук (SICS).

Эта информация кратко изложена на вики-странице XACML TC в OASIS. TC поддерживается такими ведущими организациями, как Oracle, IBM и Axiomatics. Редактором спецификации XACML 3.0 является технический директор Axiomatics Эрик Риссанен.

Кроме того, Куппингер Коул провел вебинар на тему: "Управление доступом на основе политик с помощью XACML 3.0".

Наконец, я кратко описал новые функции на странице . "Усовершенствования и новые функции в #XACML 3.0".

person David Brossard    schedule 03.11.2011
comment
В вики Oasis есть много информации о различиях между Xacml 2.0 и Xamcl 3.0, но все они касаются синтаксиса и функций политик. Клиентские приложения в основном не обращают внимания на этот уровень внутренней детализации PDP. Что касается вопроса о том, как переход с 2.0 на 3.0 повлияет на мой клиентский код, нам нужно посмотреть на изменения в запросе и ответе. - person dthorpe; 03.11.2011

Может быть еще одна полезная веб-страница для понимания функций XACML3:

Что нового в XACML 3.0

person Asela    schedule 17.07.2012