Вы можете выбирать, как моделировать вещи. Действия являются отдельным атрибутом категории действий. Стандарт XACML даже дает вам стандартный атрибут urn:oasis:names:tc:xacml:1.0:action:action-id
, который вы можете использовать для этого.
Когда я моделирую политику, я обычно создаю искусственный атрибут с именем objectType
, где значением могут быть различные типы элементов, доступ к которым я хочу контролировать, например,
- медицинская карта
- финансовая операция
- документ ...
Затем я применяю действия к этим типам объектов. Например, у меня есть политика, которая гласит, что
Врачи могут просматривать медицинскую карту пациента, с которым у них есть отношения.
Что касается поиска, вы должны рассмотреть, что означает поиск: вы можете контролировать доступ к поиску в целом. Например, основные пользователи не могут искать. Опытные пользователи могут искать. Это пример функционального контроля доступа, то есть управления доступом к функции (поиску).
Вы можете ограничить его конкретным типом объекта, например
Врачи могут искать медицинские записи
Результаты поиска могут содержать только те, которые разрешено просматривать врачу. Это означает, что вы фактически запустили 2 проверки авторизации: возможность просмотра и возможность поиска.
Надеюсь, это поможет.