Централизованное управление правами доступа на базе ABACЭлементы архитектуры
Ведущий разработчик на Java.
Для IТ-ландшафта крупной компании или предприятия характерны следующие особенности:
- используется большое число информационных систем (ИС);
- сквозные бизнес-процессы «проходят» через несколько IТ-систем;
- пользователи выполняют различные операции в разнообразных системах;
- в каждой системе есть свои настройки прав доступа и своя процедура аутентификации.
Нередко в ИС управление правами доступа осуществляется с помощью классического подхода на основе ролей (Role-Based Access Control, RBAC). Однако при использовании классического варианта RBAC возникают потребности в более гибких и гранулированных ограничениях доступа (например, на уровне записей в БД). Это приводит к появлению дополнительной логики и/или настроек в самой ИС, что усложняет сопровождение и развитие системы, повышает накладные расходы, снижает оперативность процессов управления правами и т.п.
Существует подход, решающий данные проблемы посредством управления правами доступа на основе атрибутов — Attribute-Based Access Control (ABAC). В этом случае права доступа формулируются в виде политик (наборов правил), составленных с использованием различных атрибутов бизнес-сущностей, среды окружения, реквизитов пользователя и т.п. Список атрибутов может быть настроен в соответствии с потребностями ИС. Это позволяет расширять возможности правил по мере необходимости. Политики и правила размещаются в централизованной системе управления доступом, и ИС обращаются к ней с запросами на авторизацию действий бизнес-пользователей.
В настоящее время существует стандарт OASIS, описывающий формат таких правил доступа и компонентов систем управления правами доступа на основе этих правил: eXtensible Access Control Markup Language (XACML). Существуют продукты, поддерживающие данный стандарт: бесплатный WSO2 Balana и коммерческий Axiomatics Policy Server.
Для использования системы управления доступом на основе ABAC архитектура ИС должна быть соответствующим образом спроектирована: вся авторизация действий должна осуществляться посредством обращения к системе управления доступом, анализа ответа от нее и принятия соответствующего решения о разрешении или запрете доступа. Для разрабатываемых с нуля ИС такую схему авторизации можно заложить на этапе проектирования. С точки зрения стоимости разработки ИС такой вариант сопоставим с вариантом, когда для ИС создается своя система управления доступом (а возможно, окажется и дешевле). Но для существующих ИС переход на ABAC может оказаться весьма дорогостоящим. Как правило, в них уже реализованы механизмы управления правами на основе RBAC, также возможна ситуация, когда ИС подключены к централизованной системе управления доступом (например, Oracle Identity Manager).
Мы в CUSTIS реализовали решение для управления доступом, основанное на гибридном подходе. Оно позволяет получить преимущества ABAC в существующих ИС, использующих RBAC подход, не меняя их существенным образом. Специальный компонент решения, получая на вход политики с правилами в формате XACML, преобразует их в команды управления доступом для существующих ИС в терминах RBAC. Для исполнения этих команд в решение включены интеграционные компоненты для целевых ИС. Для новых ИС решение предоставляет типовую функциональность управления доступом на основе ABAC, предусмотренную стандартом XACML.
Данное решение было развернуто в рамках внутренней инфраструктуры компании. К нему были подключены системы ERP, IssueTracker и Active Directory. Для централизованного хранения информации о пользователях и правах был использован Oracle Identity Manager.
В докладе будет подробно описана архитектура гибридного решения, его преимущества, недостатки и перспективы дальнейшего развития.