2016-06-17 8 views
1

Позвольте мне объяснить мою проблему, используя пример -Роль на основе пользователя и на основе XACML политики

Предположим, у меня есть корневой каталог Mumbai (корневой элемент иерархии местоположения) и два ребенка Andheri и Bandra.

У меня есть две роли - менеджер и инженер-строитель. Менеджер имеет доступ ко всему местоположению, находящемуся в Мумбаи, а инженер-строитель имеет доступ к корневому элементу (Мумбаи) на уровне ребенка.

У меня есть четыре сотрудника, работник «А» в качестве менеджера, сотрудник «В», «С» и «Д» в качестве инженера завода.

Поскольку «B», «C» и «D» являются инженерами-установщиками, поэтому все трое имеют доступ к местоположению уровня Andheri и Bandra, но я хочу применить условие в соответствии с моей политикой XACML, которую заводские инженеры «B» и «D «должны иметь привилегии для доступа только к местоположению Andheri, а инженер станции« C »должен иметь привилегию получить доступ к местоположению Andheri и Bandra.

Я не понимаю, как я должен писать политику XACML, которая может удовлетворить мое указанное выше условие.

ответ

0

Как я понял, похоже, что у вас уже есть политика XACML на основе ролей, которая отлично подходит для ролей «Менеджер» и «Инженер-завод», но вам нужно иметь дополнительную проверку, чтобы разрешить ограниченный доступ к местоположениям в зависимости от пользователя.

Теперь вы не должны создавать политику на основе имени пользователя, так как было бы сложно поддерживать, поскольку пользователи продолжают меняться и удаляться/деактивироваться из системы, особенно в случае сотрудников. Теперь лучше, я предлагаю иметь дополнительный атрибут в профиле пользователя, например. «allowedLocation», чье значение может быть «Andheri» или «Bandra», и вы можете иметь политику XACML, которая будет проверять, имеет ли доступ доступ к ресурсу (т.е. растение «Andheri» или «Bandra») равно значению атрибута пользователя «allowedLocation», а затем разрешить доступ.

В этом случае вы можете либо сделать одну политику каждого завода или вы можете создать единую общую политику с двумя правилами, т.е.

  • Правило 1: если доступ ресурс = значение атрибута пользователя «allowedLocation», а затем " Разрешить "
  • Правило 2: Остальное" Запретить "

 Смежные вопросы

  • Нет связанных вопросов^_^