RBAC (Role-Based Access Control) или Ролевая модель — модель доступа, в которой права назначаются ролям, а пользователи получают доступ через назначенные им роли.
ACL (Access Control List) или Список прав — модель доступа, при которой для каждого объекта хранится список субъектов (пользователей, групп, ролей) и выданных им прав.
Hierarchical ACL (иерархический ACL) — разновидность ACL, при которой объект может наследовать права доступа от родительского объекта.
Пример для Вики:
В результате доступ пользователя к странице определяется его ролями, группами и записями ACL, действующими для данной страницы.
Пример использования Hierarchical ACL:
В Timetta доступ пользователя к данным определяется комбинацией нескольких механизмов:
Примечание
Отдельно от описанной модели работают права на жизненный цикл сущностей. Они определяют возможность перехода сущности из одного состояния в другое. Эти права настраиваются отдельно и не зависят напрямую от RBAC, ACL или лицензий.
Основной уровень доступа пользователя формируется комбинацией лицензии, RBAC и ACL. Этот уровень определяет, может ли пользователь:
Формально:
Permission = License AND (RBAC OR ACL)
Если у пользователя нет лицензии или соответствующих прав, данные этого типа для него недоступны.
В Timetta предусмотрен фиксированный список системных ролей:
Роль определяет доступ к области системы:
| Роль | Область |
|---|---|
| Пользователь | Моя работа, Аналитика |
| Управление командой | Команда |
| Управление проектами | Проекты |
| Управление ресурсами | Ресурсы |
| Управление финансами | Финансы |
| Управление клиентами | Клиенты |
| Администратор | Настройки |
Для каждой системной роли может быть создан один или несколько наборов прав. Каждый набор прав состоит из гранул — минимальных единиц настройки доступа. Например:
Большинство гранул разделяются на области действия. Например:
Для каждой гранулы и области задаются доступные действия:
Пользователям назначаются настроенные наборы прав, после чего они получают доступ к соответствующим данным и операциям.
Наборы прав можно назначать:
Итоговые права пользователя формируются объединением всех назначенных ему наборов прав.
ACL используется для назначения прав непосредственно на конкретные объекты системы. Права могут назначаться:
ACL дополняет RBAC и позволяет более точно управлять доступом к отдельным сущностям.
| Компонент | Применение ACL |
|---|---|
| Задачи | Права могут назначаться пользователям, ролям и группам пользователей на уровне проекта |
| Представления | Доступ на конкретное представление |
| Дашборды | Доступ на конкретный дашборд |
| Вики | Доступ к Вики-страницам |
Отдельно существует механизм доступа по назначенному заданию воркфлоу. Если пользователю назначено задание воркфлоу, система предоставляет ему доступ к связанной сущности.
Особенности:
Для создаваемой сущности проверяется её будущее состояние — значения, которые будут сохранены после создания:
Для редактирования проверяется право доступа к сущности в её текущем состоянии:
Для списков и выборок данных:
License AND (RBAC OR ACL)
Для открытия конкретной сущности:
License AND (RBAC OR ACL OR Workflow Assignment)
Перейти на русскую версию?