Система прав доступа (RBAC)

ℹ️ О документе

Этот раздел описывает систему управления правами доступа в IDENTYX, которая основана на модели RBAC (Role-Based Access Control). Вы узнаете, как работает проверка прав, что такое объекты и действия, как создаются правила доступа и как назначать права пользователям и группам.

Что такое RBAC в IDENTYX

RBAC (Role-Based Access Control) — это модель управления доступом на основе ролей. В IDENTYX реализована гибкая система прав доступа, которая позволяет точно контролировать, какие пользователи могут выполнять какие действия над какими объектами.

✅ Преимущества RBAC
  • Централизованное управление — все права настраиваются в одном месте
  • Гибкость — можно создавать собственные объекты и действия для приложений
  • Наследование — права автоматически применяются к дочерним объектам
  • Групповые права — назначайте права группам, а не каждому пользователю
  • Приоритет запретов — права запрета всегда важнее прав разрешения

Основные концепции

Субъекты безопасности

Субъекты — это те, кому назначаются права доступа:

  • Локальные пользователи — отдельные пользователи системы
  • Локальные группы — группы пользователей, которым можно назначать коллективные права
  • Специальная группа "Все" — автоматическая группа, которая включает всех пользователей системы
💡 Рекомендация

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

Объекты безопасности

Объекты безопасности — это ресурсы системы, к которым нужно контролировать доступ. Объекты организованы в виде дерева с иерархической структурой.

Примеры объектов:

  • /iam — сама система IDENTYX и её настройки
  • /menu — разделы меню интерфейса
  • /orgs — организации системы
  • /приложение — объекты конкретного OIDC приложения
⚠️ Системные объекты

Объекты, начинающиеся с /iam, являются системными и не могут быть изменены или удалены. Управление организациями (/orgs) осуществляется на отдельной странице.

Действия безопасности

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

Примеры действий:

  • /iam/super-admin — полный доступ к системе IDENTYX
  • /iam/local-admin — ограниченное администрирование
  • /menu/allow — доступ к разделам меню
  • /приложение/read — чтение данных в приложении
  • /приложение/write — изменение данных в приложении

Формат прав доступа

Права доступа в IDENTYX записываются в специальном формате:

объект:действие:тип

Где:

  • объект — путь к объекту безопасности (например, /menu/support/tickets)
  • действие — путь к действию (например, /menu/allow)
  • тип — либо allow (разрешение), либо deny (запрет)

Примеры прав:

  • /menu/support/tickets:/menu/allow:allow — разрешён доступ к разделу тикетов
  • /settings/users:/settings/allow:allow — разрешён доступ к настройкам пользователей
  • /nodes/edit:/nodes/allow:deny — запрещено редактирование узлов

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

ACL (Access Control List) — это правила, которые связывают субъекты с объектами и действиями. Одно правило ACL может включать:

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

Название: "Доступ к разделу поддержки"

Субъект: Группа "Менеджеры"

Объект: /menu/support

Действие: /menu/allow (разрешено)

Распространение: Да (применяется ко всем подразделам)

Wildcard права и иерархия

IDENTYX поддерживает использование wildcard-символа (*) для создания гибких правил доступа, которые применяются сразу к множеству объектов или действий.

Wildcard в объектах

При включении флага "Распространение на дочерние объекты" право автоматически применяется ко всем подобъектам. Например:

  • /menu/support/*:/menu/allow:allow — разрешает доступ к разделу /menu/support и всем его подразделам
  • /orgs/департамент1/*:/read:allow — разрешает чтение всех объектов внутри организации "департамент1"

Иерархическая проверка прав

При проверке прав система автоматически проверяет всю иерархию объектов снизу вверх. Например, при проверке права на /menu/support/tickets:/menu/allow система проверит:

  1. /menu/support/tickets:/menu/allow — конкретное право
  2. /menu/support/*:/menu/allow — право на родительский раздел с распространением
  3. /menu/*:/menu/allow — право на всё меню с распространением
  4. /*:/* — универсальное право на всё
✅ Преимущество иерархии

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

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

В IDENTYX действует важное правило:

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

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

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

Пример:

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

Когда использовать запреты

Права запрета полезны в следующих случаях:

  • Исключение конкретных пользователей — разрешить доступ группе, но запретить нескольким пользователям
  • Блокировка конкретных действий — разрешить чтение, но запретить удаление
  • Временные ограничения — временно ограничить доступ без удаления разрешающих прав

Источники прав

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

Прямые права пользователя

Права, назначенные непосредственно пользователю через правила ACL. Отображаются как "Прямое право".

Групповые права

Права, полученные через членство в группах. Отображаются как "Группа: [название группы]".

Специальная группа "Все"

Все пользователи автоматически входят в специальную группу "Все". Права этой группы применяются ко всем пользователям системы без исключения.

⚠️ Группа "Все"

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

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

При просмотре карточки пользователя или группы доступна вкладка "Итоговые разрешения", которая показывает все права с учётом:

  • Прямых прав пользователя или группы
  • Прав, полученных через членство в группах (для пользователей)
  • Прав группы "Все"
  • Приоритета запретов над разрешениями
  • Иерархического наследования прав

Итоговые разрешения отображаются в двух форматах:

Обычный вид

Удобный для чтения формат, показывающий:

  • Объект — путь к объекту с понятным названием
  • Действия — список действий с указанием разрешено/запрещено (зелёная галочка или красный крестик)
  • Источник — откуда получено право (прямое или от группы)
  • Наследование — есть ли распространение на дочерние объекты

Для разработчиков

Технический формат для интеграции с приложениями:

  • Список прав в формате объект:действие:тип
  • Группировка прав по приложениям
  • Возможность скопировать список прав одним кликом

Предустановленные роли

IDENTYX предоставляет несколько предустановленных ролей:

🔑 Суперадминистратор IAM

Право: /iam:/iam/super-admin:allow

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

⚙️ Локальный администратор

Право: /orgs/[организация]:/iam/local-admin:allow

Ограниченное администрирование конкретных организаций. Может управлять пользователями и группами только своих организаций. Не может выдавать права, которыми сам не обладает.

👤 Обычный пользователь

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

Права доступа в приложениях

Каждое OIDC приложение, зарегистрированное в IDENTYX, может иметь собственную систему объектов и действий. При аутентификации через OIDC приложение может запросить scope: permissions, чтобы получить список прав пользователя.

Приложение получает права в формате:

  • /объект:действие:allow — пользователю разрешено действие
  • /объект:действие:deny — пользователю запрещено действие
💡 Интеграция с приложениями

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

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

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

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

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

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

Используйте понятные названия

  • Давайте правилам ACL понятные названия (например, "Доступ менеджеров к тикетам")
  • Создавайте объекты и действия с читаемыми названиями
  • Документируйте назначение прав для будущих администраторов

Принцип минимальных привилегий

  • Назначайте только те права, которые действительно необходимы
  • Регулярно проверяйте и пересматривайте назначенные права
  • Удаляйте неиспользуемые права и правила ACL

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

  • После назначения прав проверяйте их через вкладку "Итоговые разрешения"
  • Попросите пользователя проверить доступ к ресурсам
  • Используйте тестовую учётную запись для проверки прав перед назначением большой группе
✅ Готовы продолжить?

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