Модель прав доступа
Модель прав WCS определяет, какие разделы пользователь видит и какие действия может выполнять. Права не настраиваются в отдельной сущности «модель»: администратор создаёт роли, назначает их пользователям или группам и при необходимости задаёт прямые права пользователя.
Основные понятия
Разрешение позволяет выполнить действие над ресурсом, например просмотреть роботов или создать дашборд.
Роль — именованный набор разрешений.
Группа объединяет пользователей и назначает им роли. Собственных прямых прав у группы нет.
Эффективные права — итоговый доступ пользователя после объединения всех назначений.
Источники прав
Прямые права пользователя
Настраиваются на вкладке «Прямые права» в карточке пользователя.
Прямое право удобно использовать для индивидуального исключения:
- временно разрешить отдельное действие;
- добавить персональную рабочую функцию;
- выдать право, для которого нецелесообразно создавать отдельную роль.
Прямое право дополняет роли пользователя и роли его групп. С его помощью нельзя отозвать право, которое уже получено из другого источника.
Роли пользователя
Назначаются на вкладке «Роли» в карточке пользователя. Пользователь может иметь несколько ролей; их разрешения объединяются.
Прямое назначение роли подходит для функции, которая относится к конкретному пользователю, а не ко всей его группе.
Роли групп
Пользователь получает права всех ролей, назначенных всем его группам. Если пользователь входит в несколько групп, роли этих групп объединяются.
Группа сама по себе не является источником разрешений. Источник — роли, назначенные группе.
Администратор
Флаг «Администратор» предоставляет полный доступ ко всем действиям. Для такого пользователя отдельные роли и прямые права не ограничивают административный доступ.
Объединение прав
Если разные источники разрешают разные действия, пользователь получает их вместе.
Пример:
- роль «Оператор» разрешает просмотр роботов и карты;
- роль «Диспетчер» разрешает просмотр и запуск миссий;
- пользователю назначены обе роли.
Итог: пользователь видит роботов, карту и миссии и может запускать миссии.
То же правило действует для ролей групп. Например, пользователь может получить оперативные права через группу своей смены, а инженерные — через группу технической поддержки.
Как суммируются права
Все источники равноправно добавляют разрешения в итоговый набор. Одно и то же право, полученное из нескольких источников, учитывается один раз, но в карточке эффективных прав можно увидеть, откуда оно поступило.
Пример с прямым правом
- роль группы «Операторы» разрешает просмотр миссий;
- пользователю напрямую разрешён запуск миссий.
Итог: пользователь может просматривать и запускать миссии.
Пример с несколькими ролями
- роль группы разрешает просмотр дашбордов;
- напрямую пользователю назначена роль с правом просмотра карты.
Итог: пользователь получает доступ и к дашбордам, и к карте.
Чтобы отозвать право, удалите его из каждого источника, который его выдаёт: из прямых прав пользователя, его ролей и ролей его групп.
Прямые права
В матрице прямых прав действие имеет два состояния:
- не выбрано — прямое право не выдано, но действие может быть доступно через роли;
- выбрано — действие разрешено непосредственно пользователю.
Унаследованные права отображаются в матрице, но отличаются визуально от прямых. Подсказка показывает роль или роль группы, из которой получено право.
Не дублируйте прямым разрешением право, которое уже стабильно выдаётся ролью. Это усложняет аудит и может скрыть ошибку в структуре ролей.
Практический порядок настройки
- Определите рабочие функции пользователей.
- Создайте для них роли по принципу минимально необходимого доступа.
- Назначьте общие роли группам.
- Добавьте пользователям дополнительные роли только при необходимости.
- Используйте прямые права для персональных дополнений.
- Проверьте итог на вкладке «Эффективные права».
При расследовании неожиданного доступа проверьте все источники: прямые права, роли пользователя и роли его групп. Право останется доступным, пока оно присутствует хотя бы в одном из них.