Управление доступом на основе атрибутов: что является ресурсом действия поиска - PullRequest
0 голосов
/ 12 мая 2018

Я хочу внедрить систему контроля доступа на основе атрибутов. Когда пользователь хочет выполнить действие «чтение» или «обновление», я уже знал ресурс, на который может повлиять это действие, и может возвращать, разрешено ли действие. Однако я не знаю, что делать с «поисковым» действием, являются ли ресурсы результатами поиска. Если это так, как я могу проверить, может ли пользователь выполнить действие, не выполнив поиск заранее?

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете выбирать, как моделировать вещи. Действия являются отдельным атрибутом категории действий. Стандарт XACML даже дает вам стандартный атрибут urn:oasis:names:tc:xacml:1.0:action:action-id, который вы можете использовать для этого.

Когда я моделирую политику, я обычно создаю искусственный атрибут с именем objectType, где значением могут быть различные типы элементов, доступ к которым я хочу контролировать, например,

  • медицинская карта
  • финансовая операция
  • документ ...

Затем я применяю действия к этим типам объектов. Например, у меня есть политика, которая гласит, что

Врачи могут просматривать медицинскую карту пациента, с которым у них есть отношения.

Что касается поиска, вы должны рассмотреть, что означает поиск: вы можете контролировать доступ к поиску в целом. Например, основные пользователи не могут искать. Опытные пользователи могут искать. Это пример функционального контроля доступа, то есть управления доступом к функции (поиску).

Вы можете ограничить его конкретным типом объекта, например

Врачи могут искать медицинские записи

Результаты поиска могут содержать только те, которые разрешено просматривать врачу. Это означает, что вы фактически запустили 2 проверки авторизации: возможность просмотра и возможность поиска.

Надеюсь, это поможет.

...