XACML: как контролировать доступ к свойствам ресурса

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

Но как только оценка сделана и решено извлечь ресурс, можем ли мы контролировать, к каким полям / свойствам ресурса может обратиться пользователь / субъект?

Например, есть ресурс под названием Customer со следующими полями.

клиент: {имя, isVip, номер телефона}

Теперь, если у меня есть торговый агент, имеющий доступ к этой информации, я хочу показать phoneNumber VIP-клиента только нескольким выбранным торговым агентам.

Это должен быть ответ на API информации о клиенте GET:

вызывается обычным агентом по продажам: {name, isVip}

вызывается выбранным агентом по продажам: { name, isVip, phoneNumber}

Могу ли я достичь этого с помощью XACML? Если да, то как?

1 ответ

Решение

Да, ты можешь!

Все зависит от того, как вы определяете свои ресурсы и как вы пишете политики для них. В вашем случае у вас есть объект типа "Клиент", и у вас есть объекты типа "поле". Name, isVip и phoneNumber - это все поля объекта Customer.

Вы можете написать следующие политики:

  • Торговые агенты могут просматривать объект клиента в том же регионе
  • Торговые агенты могут просматривать поле phoneNumber клиента, если они назначены этому клиенту

Как будет работать принуждение? То, что вы должны видеть, - это то, что вы можете выполнять принудительные меры по дороге... и по дороге. Другими словами, вы могли бы спросить

  • Может ли торговый агент Алиса просмотреть запись клиента № 123?
  • Разрешать

Затем приложение получает запись. Когда запись возвращается из базовой системы через PEP, вы затем проверяете запись, обнаруживаете, что у вас есть 3 раздела, которые стоит контролировать, и затем вы спрашиваете PDP:

  • Может ли Алиса торговый агент просмотреть разделы № 1, № 2, № 3 из записи клиента № 123?
  • Разрешить, Запретить, Запретить

Кстати, последний является примером запроса множественного решения. Вы можете прочитать больше о MDP здесь и здесь.

Другие вопросы по тегам