Правила доступа (ACL)

ℹ️ О разделе

В этом разделе вы узнаете, как создавать и управлять правилами доступа (ACL) в IDENTYX. Правила ACL связывают пользователей или группы с объектами и действиями, определяя, кто и что может делать в системе и приложениях. Вы научитесь работать с разрешениями и запретами, использовать распространение прав на дочерние объекты и создавать гибкие правила доступа.

Что такое правило ACL

ACL (Access Control List) — это правило доступа, которое определяет, какие действия разрешены или запрещены для определённых субъектов (пользователей или групп) над определёнными объектами.

Одно правило ACL может включать:

  • Субъект — пользователь или группа, для которых создаётся правило
  • Объекты — один или несколько объектов безопасности, к которым применяется правило
  • Действия — одно или несколько действий, которые разрешаются или запрещаются
  • Тип правила — разрешение (allow) или запрет (deny) для каждого действия
  • Распространение — флаг, указывающий, применяется ли правило к дочерним объектам
✅ Гибкость правил

Одно правило ACL может содержать несколько объектов и несколько действий одновременно. Это позволяет создавать компактные и понятные наборы прав.

Где управлять правилами ACL

Правила доступа можно назначать двумя способами:

Из карточки пользователя или группы

  1. Перейдите в раздел Локальные пользователи или Локальные группы
  2. Откройте карточку нужного пользователя или группы
  3. Перейдите на вкладку Правила доступа
  4. Здесь отображаются все правила для выбранного субъекта
💡 Рекомендация

Это основной и наиболее удобный способ управления правами. Вы видите все правила конкретного пользователя или группы в одном месте.

Итоговые разрешения

Кроме вкладки "Правила доступа" в карточке пользователя или группы есть вкладка "Итоговые разрешения". На ней отображаются:

  • Все права с учётом прямых правил пользователя
  • Права, полученные через членство в группах (для пользователей)
  • Права специальной группы "Все"
  • Итоговый результат с учётом приоритета deny над allow
  • Источник каждого права (прямое или от группы)
⚠️ Отличие вкладок
  • "Правила доступа" — показывает только прямые правила, назначенные конкретно этому пользователю или группе. Здесь вы можете их создавать и редактировать.
  • "Итоговые разрешения" — показывает итоговые вычисленные права с учётом всех источников. Это readonly-представление для анализа прав.

Создание правила доступа

Пошаговая инструкция

  1. Откройте карточку пользователя или группы, для которых создаётся правило
  2. Перейдите на вкладку Правила доступа
  3. Нажмите кнопку Добавить правило
  4. Откроется окно редактирования правила с двумя колонками: Объекты (слева) и Действия (справа)

Выбор объектов

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

⬜ Пустое состояние

Объект не выбран. Правило не применяется к этому объекту.

✅ Галочка (зелёная)

Только этот объект

Правило применяется только к выбранному объекту, но не к его дочерним объектам.

✳️ Звёздочка (синяя)

Этот и все дочерние объекты

Правило применяется к выбранному объекту и автоматически распространяется на все его дочерние объекты любой глубины вложенности.

Для переключения состояний: Кликайте по чекбоксу объекта. Состояния меняются циклически: пусто → галочка → звёздочка → пусто.

💡 Множественный выбор

Вы можете выбрать несколько объектов в одном правиле. Например, можно дать доступ одновременно к /menu/support и /menu/helpdesk.

Выбор действий

В правой колонке отображается дерево всех доступных действий. Для каждого действия доступен чекбокс с тремя состояниями:

⬜ Пустое состояние

Действие не выбрано. Правило не применяется к этому действию.

✅ Разрешено (зелёная галочка)

Allow-правило

Действие разрешено для выбранных объектов.

❌ Запрещено (красный крестик)

Deny-правило

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

Для переключения состояний: Кликайте по чекбоксу действия. Состояния меняются циклически: пусто → разрешено → запрещено → пусто.

⚠️ Особенность группы "Все"

Для специальной группы "Все" доступны только разрешающие права (allow). Запрещающие права (deny) для этой группы заблокированы, чтобы избежать случайной блокировки всей системы.

Сохранение правила

  1. После выбора объектов и действий нажмите кнопку Сохранить
  2. Система проверит, что выбран хотя бы один объект и хотя бы одно действие
  3. Правило будет сохранено и отобразится в списке правил доступа
✅ Мгновенное применение

Правила доступа применяются немедленно. Пользователь получит или потеряет доступ сразу после сохранения правила (может потребоваться обновить страницу в браузере).

Разрешения (Allow) и запреты (Deny)

Allow-правила (Разрешения)

Allow-правила предоставляют доступ к ресурсам. Это основной тип правил, который используется для назначения прав.

Примеры разрешающих правил:

  • /menu/support/*:/menu/allow:allow — разрешён доступ к разделу поддержки и всем подразделам
  • /helpdesk/tickets:/helpdesk/view:allow — разрешён просмотр заявок
  • /settings/users:/settings/edit:allow — разрешено редактирование пользователей в настройках
💡 По умолчанию

В большинстве случаев вы будете использовать именно allow-правила. Запреты нужны только для создания исключений.

Deny-правила (Запреты)

Deny-правила явно запрещают доступ к ресурсам. Они используются для создания исключений и ограничений.

Примеры запрещающих правил:

  • /menu/admin:/menu/allow:deny — запрещён доступ к разделу администрирования
  • /helpdesk/tickets:/helpdesk/delete:deny — запрещено удаление заявок
  • /settings/*:/settings/edit:deny — запрещено редактирование всех настроек

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

Самое важное правило системы прав IDENTYX:

🚫 Приоритет запретов

Права запрета (deny) ВСЕГДА имеют абсолютный приоритет над правами разрешения (allow)

Если для пользователя найдено хотя бы одно deny-право, доступ будет заблокирован, независимо от всех allow-прав из любых источников (прямых, групповых, wildcard).

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

🔒 Пример 1: Исключение из группы

Ситуация:

  • Группе "Менеджеры" разрешён доступ: /menu/support/*:/menu/allow:allow
  • Пользователь Иван входит в группу "Менеджеры"
  • Нужно запретить Ивану доступ к тикетам, но оставить доступ к остальным подразделам поддержки

Решение:

Создать для пользователя Иван личное deny-правило: /menu/support/tickets:/menu/allow:deny

Результат:

Иван не сможет получить доступ к разделу тикетов, несмотря на групповое allow-право. Доступ к остальным подразделам поддержки сохранится.

🔒 Пример 2: Запрет конкретного действия

Ситуация:

  • Группе "Редакторы" разрешены все действия: /helpdesk/*:/helpdesk/*:allow
  • Нужно запретить удаление заявок всем редакторам

Решение:

Создать для группы "Редакторы" дополнительное deny-правило: /helpdesk/tickets:/helpdesk/delete:deny

Результат:

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

🔒 Пример 3: Временное ограничение

Ситуация:

  • Пользователю Мария даны широкие права через группу
  • На время отпуска нужно временно ограничить доступ к критичным разделам

Решение:

Создать временное личное deny-правило для Марии: /settings/*:/settings/allow:deny

Результат:

Мария потеряет доступ к настройкам. После отпуска это правило можно удалить, и доступ восстановится автоматически через групповые права.

Распространение на дочерние объекты

Что такое распространение

При выборе объекта со звёздочкой (синий чекбокс) правило автоматически применяется не только к выбранному объекту, но и ко всем его дочерним объектам любой глубины вложенности.

Внутри системы это реализуется через wildcard-символ /*. Например:

  • Выбор /menu/support со звёздочкой → /menu/support/*
  • Выбор /helpdesk со звёздочкой → /helpdesk/*

Преимущества распространения

✅ Зачем использовать распространение
  • Автоматическое покрытие — не нужно создавать отдельное правило для каждого подобъекта
  • Масштабируемость — новые дочерние объекты автоматически попадут под действие правила
  • Простота управления — одно правило вместо десятков отдельных
  • Прозрачность — легко понять, что доступ дан на весь раздел

Примеры распространения

Правило Что включается Что не включается
/menu/support/*
  • /menu/support
  • /menu/support/tickets
  • /menu/support/tickets/new
  • Все другие подобъекты
  • /menu/helpdesk
  • /menu/admin
/helpdesk/tickets (без звёздочки)
  • Только /helpdesk/tickets
  • /helpdesk/tickets/new
  • /helpdesk/tickets/urgent
  • Все дочерние объекты
/* (корень со звёздочкой)
  • Абсолютно все объекты системы
  • Используется для суперадминистратора
Нет исключений

Распространение с Deny

Распространение работает и для deny-правил. Это позволяет создавать широкие ограничения:

  • /settings/*:/settings/delete:deny — запрещено удаление во всех разделах настроек
  • /admin/*:/menu/allow:deny — запрещён доступ ко всем административным разделам
⚠️ Осторожно с wildcard deny

Будьте внимательны при использовании deny-правил с распространением. Такое правило заблокирует доступ ко всем дочерним объектам, и отменить его можно будет только удалением самого deny-правила.

Множественные объекты и действия

Несколько объектов в одном правиле

Одно правило ACL может включать несколько объектов одновременно. Это полезно, когда нужно дать одинаковые права на разные разделы.

Пример:

  • Выбрать объекты: /menu/support и /menu/helpdesk
  • Выбрать действие: /menu/allow (разрешено)
  • Результат: доступ одновременно к разделам поддержки и helpdesk

Несколько действий в одном правиле

Одно правило ACL может включать несколько действий, каждое со своим типом (allow или deny).

Пример:

  • Выбрать объект: /helpdesk/tickets
  • Выбрать действия:
    • /helpdesk/view (разрешено)
    • /helpdesk/edit (разрешено)
    • /helpdesk/delete (запрещено)
  • Результат: можно просматривать и редактировать заявки, но нельзя их удалять

Комбинации объектов и действий

Система автоматически создаёт все комбинации выбранных объектов и действий. Например:

  • Объекты: /menu/support, /menu/helpdesk
  • Действия: /menu/allow (разрешено), /menu/admin (запрещено)

Результирующие права:

  • /menu/support:/menu/allow:allow
  • /menu/support:/menu/admin:deny
  • /menu/helpdesk:/menu/allow:allow
  • /menu/helpdesk:/menu/admin:deny
💡 Удобство групповых правил

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

Просмотр правил доступа

Список правил

На вкладке "Правила доступа" в карточке пользователя или группы отображается таблица со всеми правилами. Для каждого правила показывается:

  • Объекты — список объектов, к которым применяется правило
    • Понятное название объекта
    • Метка "+ наследование", если включено распространение на дочерние объекты
    • Предупреждение "Объект удален" для несуществующих объектов
  • Действия — список действий с указанием типа
    • Понятное название действия
    • Зелёная надпись "Разрешено" для allow-правил
    • Красная надпись "Запрещено" для deny-правил
    • Предупреждение "Действие удалено" для несуществующих действий

Порядок правил

Правила отображаются в том порядке, в котором они были созданы. Порядок не влияет на приоритет применения — система всегда автоматически учитывает:

  • Приоритет deny над allow
  • Иерархию объектов (от конкретного к общему)
  • Wildcard-правила
ℹ️ Порядок не важен

В отличие от некоторых других систем контроля доступа, в IDENTYX порядок правил не имеет значения. Система всегда применяет правила согласно встроенной логике приоритетов.

Редактирование правил

Изменение правила

Чтобы изменить существующее правило:

  1. В списке правил кликните по строке с нужным правилом
  2. Откроется окно редактирования с текущими настройками правила
  3. Измените выбор объектов или действий
  4. Измените типы действий (allow/deny)
  5. Нажмите Сохранить
⚠️ Невозможно изменить субъекта

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

Удаление правила

Чтобы удалить правило:

  1. Кликните по строке с правилом, чтобы открыть окно редактирования
  2. Нажмите кнопку Удалить в нижней части окна
  3. Правило будет немедленно удалено
✅ Безопасное удаление

При удалении правила доступа не удаляются объекты и действия безопасности — удаляется только связь между субъектом и правами.

Лучшие практики

Используйте групповые права

  • Назначайте права группам, а не отдельным пользователям
  • Добавляйте пользователей в группы для получения прав
  • Используйте личные права пользователям только для исключений
  • Создавайте группы по ролям (например, "Менеджеры", "Операторы", "Читатели")

Используйте распространение

  • Предпочитайте распространение вместо множества мелких правил
  • Создавайте права на родительские объекты с флагом распространения
  • Используйте deny-права для точечных исключений из широких allow-правил

Минимизируйте использование Deny

  • Deny только для исключений — не злоупотребляйте запретами
  • Основная логика должна быть построена на allow-правилах
  • Deny используйте для создания исключений из групповых прав
  • Документируйте причину каждого deny-правила

Создавайте понятную структуру

  • Группируйте права — создавайте комплексные правила с несколькими объектами/действиями
  • Не создавайте отдельное правило для каждой мелкой операции
  • Используйте понятные имена для объектов и действий
  • Регулярно проверяйте и очищайте неиспользуемые правила

Тестируйте права

  • Используйте "Итоговые разрешения" для проверки результата
  • После назначения прав попросите пользователя проверить доступ
  • Создайте тестового пользователя для проверки новых правил
  • Проверяйте, что deny-права не блокируют больше, чем нужно

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

  • Ведите документацию по назначенным правам для критичных групп
  • Объясняйте назначение deny-правил при их создании
  • Уведомляйте пользователей об изменении их прав

Типичные сценарии

Сценарий 1: Назначение прав по ролям

Задача: Создать три роли для приложения HelpDesk: Читатель, Оператор, Администратор.

Решение:

  1. Создать группы: "HelpDesk Читатели", "HelpDesk Операторы", "HelpDesk Администраторы"
  2. Для группы "HelpDesk Читатели" создать правило:
    • Объект: /helpdesk/* (со звёздочкой)
    • Действие: /helpdesk/view:allow
  3. Для группы "HelpDesk Операторы" создать правило:
    • Объект: /helpdesk/* (со звёздочкой)
    • Действия: /helpdesk/view:allow, /helpdesk/edit:allow, /helpdesk/create:allow
  4. Для группы "HelpDesk Администраторы" создать правило:
    • Объект: /helpdesk/* (со звёздочкой)
    • Действие: /helpdesk/*:allow (все действия)

Сценарий 2: Исключение пользователя из групповых прав

Задача: Группе "Менеджеры" дан доступ ко всем разделам поддержки, но конкретному пользователю Иван нужно запретить доступ к финансовым отчётам.

Решение:

  1. Групповое правило уже существует:
    • Группа: "Менеджеры"
    • Объект: /menu/support/*
    • Действие: /menu/allow:allow
  2. Открыть карточку пользователя Иван
  3. Создать личное deny-правило:
    • Объект: /menu/support/finance-reports
    • Действие: /menu/allow:deny

Результат: Иван не сможет получить доступ к финансовым отчётам, но сохранит доступ ко всем остальным разделам поддержки.

Сценарий 3: Временное ограничение прав

Задача: На время аудита ограничить возможность удаления данных для всех операторов.

Решение:

  1. Открыть карточку группы "Операторы"
  2. Создать дополнительное deny-правило:
    • Объект: /* (со звёздочкой, на всё)
    • Действие: /helpdesk/delete:deny
  3. После завершения аудита удалить это deny-правило

Результат: Операторы временно потеряют возможность удаления, но сохранят все остальные права. После удаления deny-правила права автоматически восстановятся.

Решение проблем

Пользователь не видит раздел, хотя есть allow-право

Возможные причины:

  1. Есть deny-право — проверьте вкладку "Итоговые разрешения", возможно, есть deny-право из другого источника
  2. Неправильный объект или действие — убедитесь, что указан правильный путь к объекту и действию
  3. Отсутствует распространение — если нужен доступ к дочернему объекту, включите флаг распространения
  4. Не обновлена страница — попросите пользователя обновить страницу в браузере (F5)

Пользователь видит раздел, хотя не должен

Возможные причины:

  1. Групповые права — проверьте, в какие группы входит пользователь, возможно, право приходит от группы
  2. Группа "Все" — проверьте права специальной группы "Все"
  3. Wildcard-право — возможно, есть широкое право с распространением на родительском объекте

Deny-право не работает

Проверьте:

  1. Правильность пути — убедитесь, что путь объекта и действия указан точно
  2. Применено ли правило — проверьте, что правило сохранено и отображается в списке
  3. Не используется ли другой путь — возможно, приложение проверяет другой путь для доступа
💡 Используйте "Итоговые разрешения"

Для диагностики проблем с правами всегда используйте вкладку "Итоговые разрешения" в карточке пользователя. Там показаны все вычисленные права с указанием источников.

Ограничения для локальных администраторов

Если у вас права локального администратора (а не суперадминистратора), то при создании правил вы увидите ограничения:

  • Недоступные объекты — вы не сможете выбрать объекты, на которые у вас нет прав администрирования
  • Недоступные действия — вы не сможете выбрать действия, которыми сами не обладаете
  • Сообщение в интерфейсе — при попытке редактирования чужого правила появится предупреждение "У вас не хватает прав для редактирования этого правила"
⚠️ Принцип ограниченного администрирования

Локальный администратор не может выдать права, которыми сам не обладает. Это предотвращает повышение привилегий и обеспечивает безопасность системы.

✅ Готовы продолжить?

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