WedX - журнал о программировании и компьютерных науках

XACML, объединяющий PIP в политике

Я новичок в архитектуре XACML и буду признателен, если вы поможете мне со следующим вопросом.

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

Если да, то можете ли вы предоставить мне простой пример запроса XML?

заранее спасибо


Ответы:


1

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

Основываясь на архитектуре XACML, это зависит от PDP, чтобы решить, как разрешать атрибуты с помощью PIP.

Как это работает на высоком уровне:

  1. Запрос на ввод (из PEP) в PDP содержит атрибут, скажем, Subject-ID=Alice
  2. PDP оценивает политику XACML на основе атрибутов входного запроса. Например, в политике указано разрешить, если Action-ID=Read
  3. Поскольку в политике не определено Subject-ID, PDP пытается запросить PIP или PIP для разрешения Action-ID и предоставляет PIP значение, которое оно имеет, равное Subject-ID (из входящего запроса). Например, у нас есть 2 PIP: PIP A может разрешить resource-ID из Subject-ID, а PIP B может разрешить Action-ID из resource-ID
  4. Здесь происходит то, что PDP сначала разрешает resource-ID на основе входного запроса Subject-IDfrom с использованием PIP A, а затем использует resource-ID для разрешения Action-ID с помощью PIP B, который затем используется PDP для оценки политика. Если PIP B вернет Алису, вы получите permit решение, иначе это будет NotApplicable

Обратите внимание, что это зависит от того, как реализован PDP для разрешения атрибутов с использованием связанных PIP, как в вашем случае использования.

PDP от компании Axiomatics может выполнять поиск по цепочке PIP.

Раскрытие информации: я работаю в Axiomatics, где мы предоставляем решения для управления доступом на основе XACML.

12.02.2019
  • Спасибо, я понял идею. 12.02.2019
  • Я подтверждаю, что это определенно зависит от реализации, логика немного отличается в AuthzForce PDP, который также поддерживает Цепочка PIP. Кроме того, PDP должен быть разработан для предотвращения петель в цепочке PIP, обычно возникающих из-за неправильной конфигурации. Например. PIP1 разрешает атрибут A на основе атрибута B, PIP2 разрешает B на основе C, PIP3 разрешает C на основе A - ›бесконечный цикл (при условии, что ни один из A, B или C не входит в начальный запрос). Это крайний случай, но на всякий случай следует обратить внимание на него. 14.02.2019
  • @CyrilDangerville В вашем примере, как PIP1 может разрешить атрибут A из B, поскольку вы упомянули - «при условии, что ни один из A, B или C не входит в начальный запрос». Если PDP реализован в соответствии с Спецификации XACML 3.0, PDP примет пустой мешок для атрибута A из PIP1, как в вашем примере, поскольку PIP1 не имеет атрибута B для разрешения атрибута A. То же самое относится к PIP2 и PIP3. Сообщите мне, если я неправильно понял ваш пример. 14.02.2019
  • Да, я должен пояснить, что вы можете использовать цепочку PIP следующим образом: если PIP требует / зависит от атрибута B для получения атрибута A (как ранее PIP1), он вызывает обратно обработчик контекста PDP (используя термин из спецификации, с которой вы связались), запрашивающий B. Если B отсутствует в контексте запроса, то обработчик контекста может запросить другой PIP, который может предоставить B, например PIP2. Опять же, если PIP2 требует, чтобы C получил B, он вызывает обработчик контекста. 17.02.2019
  • ... (продолжение) Если C находится в контексте запроса (например, он был в исходном запросе XACML или ранее был предоставлен некоторым PIP), то обработчик контекста предоставляет он возвращается в PIP2, затем PIP2 может вернуть B обратно в обработчик контекста, затем обратно в PIP1, который, наконец, получит A, и все готово. Но если C также отсутствует в контексте запроса, это продолжается с другим PIP (как ранее PIP3). Короче говоря, с такой цепочкой PIP PDP может разрешить любой атрибут A, для которого существует путь (или дерево) зависимости PIP от A до атрибутов, присутствующих в запросе. 17.02.2019
  • ... (продолжение) Но PDP или обработчик контекста должны убедиться, что он не попадает в цикл, например если PIP3 требует, чтобы A получил C, мы возвращаемся к началу. 17.02.2019
  • Новые материалы

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


    Для любых предложений по сайту: [email protected]