Обзор системы прав доступа

📚 Управление пользователями и правами в IDENTYX

Управление пользователями, группами и назначение прав доступа осуществляется через систему IDENTYX.

Данный раздел описывает только то, как права работают в INFRAX. Для получения информации о том, как создавать пользователей, назначать им роли и настраивать права доступа, обращайтесь к документации IDENTYX:

📖 Документация IDENTYX: https://docs.identyx.ru

Особенно полезные разделы:

ℹ️ О системе прав доступа

INFRAX использует централизованную систему управления правами доступа с интеграцией во внешнюю систему управления идентификацией IDENTYX. Это обеспечивает гибкую иерархическую модель прав с поддержкой wildcards и приоритетов запретов над разрешениями.

Общие сведения

Система прав доступа в INFRAX решает несколько ключевых задач безопасности и управления доступом:

Ключевые возможности

  • Централизованное управление — все права настраиваются через систему IDENTYX
  • Иерархическая модель — права наследуются от родительских объектов
  • Гранулярный контроль — права настраиваются для конкретных действий
  • Wildcards поддержка — массовое назначение прав через шаблоны
  • Приоритет запретов — Deny права всегда имеют приоритет над Allow
  • Автоматическая фильтрация — данные автоматически фильтруются по правам пользователя
✅ Интеграция с IDENTYX

Управление пользователями и их правами осуществляется через систему IDENTYX. После назначения прав в IDENTYX они автоматически применяются в INFRAX при следующей авторизации пользователя.

Архитектура системы

Система прав доступа состоит из нескольких компонентов:

Компоненты системы

1. Хранение прав

Права пользователей хранятся в формате массива строк, где каждая строка описывает одно право. После авторизации права загружаются в сессию пользователя и используются для всех проверок доступа.

2. Проверка прав на бэкенде

На стороне сервера все проверки прав выполняются через централизованный контроллер, который:

  • Проверяет наличие необходимого права у пользователя
  • Учитывает иерархическое наследование
  • Обрабатывает wildcards
  • Применяет приоритет Deny над Allow

3. Проверка прав на фронтенде

В веб-интерфейсе права проверяются перед отображением элементов управления:

  • Скрытие недоступных пунктов меню
  • Отключение кнопок действий
  • Фильтрация списков объектов

4. Фильтрация данных

Система автоматически фильтрует данные на основе прав пользователя:

  • Узлы сети отображаются только те, к которым есть доступ
  • Тикеты фильтруются по доступным организациям
  • Меню строится динамически на основе прав

Формат прав

Права в INFRAX записываются в специальном формате, состоящем из трех частей:

Структура права

путь:действие:разрешение

Компоненты:

  • Путь (path) — путь к объекту или функции
  • Действие (action) — тип действия
  • Разрешение (allow/deny) — тип разрешения

Примеры форматов прав

Право Описание
/menu/settings:/menu/allow:allow Доступ к пункту меню "Настройки"
/objects/Production:/objects/view:allow Просмотр папки "Production" и всех вложенных узлов
/objects/Production/WebServers:/objects/edit:allow Редактирование узлов в папке "WebServers"
/objects/*:/objects/view:allow Просмотр всех узлов сети
/objects/Confidential:/objects/view:deny Запрет просмотра папки "Confidential"
/orgs/1:/organizations/access-to-organization:allow Доступ к организации с ID=1
💡 Упрощенный формат

При проверке прав система автоматически добавляет :allow к праву, поэтому можно использовать упрощенный формат путь:действие, который будет преобразован в путь:действие:allow.

Иерархическое наследование

Одна из ключевых особенностей системы — иерархическое наследование прав через wildcards.

Принцип работы

Если у пользователя есть право на родительский объект с wildcard *, это право автоматически распространяется на все дочерние объекты.

Пример иерархии:

/objects/
├── Production/
│   ├── WebServers/
│   │   ├── web01
│   │   └── web02
│   └── DatabaseServers/
│       ├── db01
│       └── db02
└── Development/
    └── dev01

Примеры наследования

Назначенное право Доступные объекты
/objects/*:/objects/view:allow Все узлы во всех папках
/objects/Production/*:/objects/view:allow Все узлы в папке Production и её подпапках
/objects/Production/WebServers/*:/objects/edit:allow Редактирование узлов web01 и web02
⚠️ Уровни наследования

Система проверяет наследование на всех уровнях иерархии, от самого конкретного пути до корневого. Это позволяет настраивать права на любом уровне структуры папок.

Приоритет Deny над Allow

Важнейший принцип системы прав — запреты (Deny) всегда имеют приоритет над разрешениями (Allow).

Как это работает

Даже если у пользователя есть право Allow на объект или действие, наличие хотя бы одного Deny права автоматически блокирует доступ.

Порядок проверки:

  1. Система собирает все возможные права (с учетом wildcards)
  2. Проверяет наличие Deny прав
  3. Если найдено Deny — доступ запрещен
  4. Если Deny нет — проверяет наличие Allow прав
  5. Если найдено Allow — доступ разрешен
  6. Если ничего не найдено — доступ запрещен (по умолчанию)

Примеры использования

Сценарий 1: Доступ ко всему кроме конфиденциального

Пользователю нужен доступ ко всем узлам, кроме конфиденциальных серверов.

Назначенные права:

  • /objects/*:/objects/view:allow — просмотр всех узлов
  • /objects/Confidential/*:/objects/view:deny — запрет просмотра конфиденциальных

Результат: Пользователь видит все узлы кроме находящихся в папке "Confidential".

Сценарий 2: Редактирование всего кроме продакшена

Разработчику нужны права на редактирование, но не на production серверах.

Назначенные права:

  • /objects/*:/objects/edit:allow — редактирование всех узлов
  • /objects/Production/*:/objects/edit:deny — запрет редактирования production

Результат: Разработчик может редактировать все узлы кроме Production.

🚫 Важно: Deny нельзя переопределить

Если установлено Deny право, никакие Allow права на более низком уровне не смогут его переопределить. Это защитный механизм системы безопасности.

Типы прав

В INFRAX используются различные типы прав для разных областей системы:

1. Права на меню

Контролируют доступ к разделам интерфейса.

Право Описание
/menu/settings:/menu/allow Доступ к настройкам системы
/menu/support/tickets:/menu/allow Доступ к системе Helpdesk
/menu/administration/network-objects:/menu/allow Доступ к управлению узлами сети
/menu/administration/automation/tasks:/menu/allow Доступ к задачам
/menu/administration/automation/scheduler:/menu/allow Доступ к планировщику
/menu/administration/automation/scripts:/menu/allow Доступ к скриптам
/menu/dashboards/specialized/monitoring:/menu/allow Доступ к дашборду мониторинга
/menu/dashboards/specialized/support:/menu/allow Доступ к дашборду Helpdesk
/menu/my/tickets:/menu/allow Доступ к "Мои тикеты"

2. Права на узлы сети

Контролируют действия с объектами инфраструктуры.

Действие Формат права Описание
Просмотр /objects/[путь]:/objects/view Видимость узла в списках и деревьях (проверяется через наличие любых прав на объект)
Редактирование /objects/[путь]:/objects/edit Изменение настроек узла, настройка мониторинга, управление учетными данными
Удаленное подключение через RDP /objects/[путь]:/objects/remoteConnect/rdp Подключение к узлу только через Remote Desktop Protocol
Удаленное подключение через SSH /objects/[путь]:/objects/remoteConnect/ssh Подключение к узлу только через Secure Shell
Удаленное подключение через VNC /objects/[путь]:/objects/remoteConnect/vnc Подключение к узлу только через Virtual Network Computing
Удаленное подключение через Winbox /objects/[путь]:/objects/remoteConnect/winbox Подключение к устройствам Mikrotik через Winbox
Удаленное подключение через Web /objects/[путь]:/objects/remoteConnect/web Доступ к веб-интерфейсу узла
💡 Гранулярные права на подключение

Поддерживается детализация прав на удаленное подключение по типу сервиса. Общее право /objects/remoteConnect предоставляет доступ ко всем типам подключений. Детализированные права позволяют ограничить доступ только к определенным протоколам. Например, можно предоставить пользователю доступ только к SSH, но запретить RDP.

💡 Расширяемая система

Система прав спроектирована с возможностью расширения. В будущих версиях могут быть добавлены дополнительные действия, такие как управление агентами, выполнение скриптов, создание дочерних узлов и другие. Формат прав остается единым: /objects/[путь]:/objects/[действие].

3. Права на организации

Контролируют доступ к организациям и связанным с ними данным.

Право Описание
/orgs/[id]:/organizations/access-to-organization Базовый доступ к организации
/orgs/[id]:/organizations/allow-create-tickets-by-org Создание тикетов от имени организации
/orgs/*:/organizations/access-to-organization Доступ ко всем организациям

Роль администратора

Администраторы имеют специальное право, дающее полный доступ ко всем функциям системы.

Право администратора

/:/:allow

Это специальное право означает:

  • Доступ ко всем объектам — все узлы, папки, организации
  • Все действия разрешены — просмотр, редактирование, удаление, подключение
  • Обход фильтрации — видны все данные без ограничений
  • Доступ ко всем меню — все разделы интерфейса
⚠️ Особенность администраторов

При проверке прав система первым делом проверяет, является ли пользователь администратором. Если да — немедленно разрешает доступ без дальнейших проверок. Это оптимизирует производительность и упрощает логику.

Автоматическая фильтрация данных

Одна из важнейших особенностей системы — автоматическая фильтрация данных на основе прав пользователя.

Что фильтруется автоматически

1. Дерево узлов сети

При отображении иерархической структуры узлов:

  • Показываются только узлы, на которые есть право просмотра
  • Папки отображаются только если в них есть доступные узлы
  • Пустые папки (без доступных узлов) скрываются

2. Меню интерфейса

Меню строится динамически:

  • Скрываются пункты меню без соответствующих прав
  • Разделы без доступных подпунктов не отображаются
  • Адаптация под роль пользователя (admin, user, helpdesk admin)

3. Списки тикетов

В Helpdesk отображаются только:

  • Тикеты из организаций, к которым есть доступ
  • Собственные тикеты пользователя (всегда видны)
  • Тикеты, где пользователь указан исполнителем

4. Кнопки действий

Кнопки управления отображаются только при наличии прав:

  • "Редактировать" — только при праве на редактирование
  • "Удалить" — только при праве на удаление
  • "Подключиться" — только при праве на удаленное подключение
  • "Установить агент" — только при праве на управление агентами
✅ Безопасность по умолчанию

Система спроектирована по принципу "запретить все, разрешить только необходимое". Если право явно не назначено — доступ запрещен. Это обеспечивает высокий уровень безопасности.

Рекомендации

💡 Лучшие практики работы с правами

1. Используйте иерархию

Назначайте права на уровне папок, а не отдельных узлов. Это упрощает управление и делает систему прав более понятной.

Хорошо: /objects/Production/*:/objects/view:allow

Плохо: Назначать права на каждый узел отдельно

2. Используйте Deny для исключений

Если нужен доступ ко всему кроме нескольких объектов — используйте широкое Allow и точечные Deny.

Пример:

  • /objects/*:/objects/view:allow — доступ ко всему
  • /objects/Confidential/*:/objects/view:deny — исключение

3. Начинайте с минимальных прав

Выдавайте пользователям минимально необходимые права. Проще добавить права при необходимости, чем отзывать избыточные.

4. Группируйте объекты логически

Организуйте узлы в папки по логическим группам (Production, Development, Infrastructure). Это упростит назначение прав.

5. Документируйте права ролей

В системе IDENTYX создавайте роли с понятными названиями и описаниями назначенных прав. Это поможет при аудите безопасности.

6. Регулярно проверяйте права

Периодически пересматривайте назначенные права пользователей. Удаляйте избыточные права у уволившихся или сменивших должность сотрудников.

7. Используйте предустановленные роли

INFRAX предоставляет предустановленные роли (Администратор, Администратор Helpdesk, Пользователь). Используйте их как основу, дополняя при необходимости.

⚠️ Важные моменты
  • Права применяются после повторной авторизации пользователя
  • Изменения прав в IDENTYX требуют времени на синхронизацию
  • При возникновении проблем с доступом проверьте актуальность прав в IDENTYX
  • Deny права нельзя переопределить — будьте осторожны при их назначении