XACML, объединяющий PIP в политике
Я новичок в архитектуре XACML и буду признателен, если вы поможете мне со следующим вопросом.
Можно ли использовать несколько PIP таким образом, чтобы ответ, извлеченный из одного PIP, использовался в качестве входного параметра для другого PIP?
Если да, можете ли вы предоставить мне простой пример запроса XML?
заранее спасибо
1 ответ
Да, можно использовать несколько PIP таким образом, чтобы атрибут, разрешенный PIP, можно было использовать в качестве входных данных для другого PIP.
Основываясь на архитектуре XACML, PDP должен решить, как разрешать атрибуты с помощью PIP.
Как это работает на высоком уровне:
- Входной запрос (от PEP) к PDP содержит атрибут say
Subject-ID=Alice
- PDP оценивает политику XACML на основе атрибутов из входного запроса. Например, политика говорит, что разрешить, если
Action-ID=Read
- Так как нет
Subject-ID
определенный в политике, PDP пытается запросить PIP или PIP для разрешенияAction-ID
и обеспечивает PIPs значение, которое он имеет, которыйSubject-ID
(из запроса на ввод). Например, допустим, у нас есть 2 пипса - PIP A может решитьresource-ID
отSubject-ID
и PIP B может решитьAction-ID
отresource-ID
- Здесь происходит то, что PDP сначала разрешает
resource-ID
на основеSubject-ID
из запроса ввода, используя PIP A, а затем используетresource-ID
РазрешитьAction-ID
используя PIP B, который затем используется PDP для оценки политики. Если PIP B возвращает Алису, вы получаетеpermit
Решение еще было быNotApplicable
Обратите внимание, что это зависит от того, как реализован PDP для разрешения атрибутов с использованием цепочек PIP, как в вашем случае использования.
PDP от компании под названием Axiomatics способен выполнить цепной поиск PIP.
Раскрытие информации: я работаю в Axiomatics, где мы предоставляем решения для контроля доступа на основе XACML