Станислав задаёт вопрос по реализации стандарта управления доступом INCITS 494-2012:
Добрый день!
Не подскажете, на текущий момент известны какие-нибудь реализации стандарта INCITS 494-2012 (Role Based Access Control Policy Enhanced), или подходы к реализации, поддержка в фреймворках? Интересует именно реализация динамических ограничений (в частности, на основе атрибутов).
Или может быть кто-то подскажет другое решение?
Для нашего проекта — это насущный вопрос, поскольку новые требования расширяют настройку доступа пользователя к операциям.У нас в проекте используется классический RBAC (без расширений). Небольшой пример ролей и привилегий из нашего проекта "Роль{permission1, …}":
* Врач{чтение_своих_пациентов}
* Гл.Врач{чтение_своих_пациентов, чтение_пациентов_в_своей_организации}
* Статистик{чтение_отчет_#1_по_своим_пациентам}
* Гл. статистик{чтение_отчет_#1_по_пациентам_в_своей_организации}Динамически добавляемые привилегии (в зависимости от типа организации):
* чтение_пациентов_в_подчиненных_организациях
* чтение_отчет_#1_по_пациентам_в_подчиненных_организацияхДинамические ограничения:
* Федеральный округ — чтение пациентов/формирование отчета_#1 ограничено конкретным федеральным округом
* Федеральный субъект – чтение пациентов/формирование отчета_#1 ограничено конкретным федеральным субъектомПонятно, что эти ограничения можно представить в виде привилегий:
* чтение_пациентов_региональный уровень
* чтение_пациентов_федеральный уровеньОднако, по мере усложнения требований к доступу, становится труднее поддерживать решение, основанное на таком подходе.
К примеру, если добавиться временное ограничение: "Роль может выполнять операцию над объектом только по прошествии определенного времени после события". Очевидно, такое ограничение будет сложно реализовать через привилегии. А раз так, то почему бы ограничения: "мои_пациенты", "моя_организация", "подчиненные_организации", "региональный_уровень", "федеральный_уровень", "привязка ко времени" не вынести в отдельный механизм?Я так понял, стандарт INCITS 494-2012, а точнее его раздел, посвященный динамическим и статическим ограничениям, должен как раз решать данную задачу?
Станислав, думаю, что Вы рассуждаете в точности, как создатели стандарта RBAC PE (INCITS 494-2012), расширившие его относительно базового стандарта (INCITS 359-2012) возможностями использования внешних политик. Используя этот механизм, бизнес-правила, текущие значения определённых атрибутов можно передавать в RBAC. В зависимости от значения атрибута можно настроить запрет на использование роли или конкретных прав доступа. Как мне известно, в IDM-продуктах крупных вендоров это реализовано.