Политика XACML с несколькими ресурсами с несколькими правилами и несколькими действиями
В сценарии с несколькими профилями решений я хочу создать политику для конкретного Арендатора и для корневых ресурсов, таких как Клиент. Здесь мой сценарий выглядит так, как будто у меня есть Арендатор T1, и Арендатору Т1 разрешен доступ к корневому ресурсу Customer. Клиент - это ресурс верхнего уровня, и он будет содержать дочерние ресурсы, такие как: Sub-Resources: name, email
, В моем сценарии, как я могу создать политику, чтобы я мог применять несколько правил для каждого подресурса, как:
Правило 1: администратор разрешает доступ к ресурсам
{name: create,read,update,delete},
{email: create,read,update,delete}
Правило 2: Разрешить сотрудникам доступ к ресурсам
{name: read,update},
{email: read}
Пожалуйста, поделитесь политикой и форматом запроса для того же.
В формате запроса я хочу передать только идентификатор арендатора и ресурс корневого уровня Customer.
1 ответ
В этом случае вам нужно передать интересующий вас идентификатор поля.
Запрос будет: "Может ли Алиса просмотреть поле имени записи клиента № 123"?
Вы можете выразить это как многократный запрос решения, например:
"Может ли Алиса просмотреть поля имени, электронной почты и должности в записи клиента № 123"?
В любом случае ваша политика будет ориентирована на поле. Это защитит данное поле или набор полей. Вы могли бы на самом деле определить набор нечувствительных полей и набор чувствительных полей. Вы также можете написать политику с точки зрения метаданных поля. Вместо того чтобы сказать "пользователь может просматривать поле" электронная почта "", вы можете написать "пользователь может просматривать поле, если разрешение пользователя> чувствительность поля".
В качестве альтернативы вы также можете использовать обратный запрос - это специфично для API Axiomatics. Обратный запрос позволяет выполнять следующие типы запросов / ответов:
- Q: перечислите поля, которые Алиса может просматривать
- A: имя, адрес электронной почты