Skip to Content
ДиспетчерРолевая модель и авторизация

Ролевая модель и авторизация

Доступ в Диспетчере НТБот выдаётся набором прав. Право — это отдельное разрешение на чтение или изменение одного типа данных: сценариев, хранилища, тестов, генераторов, SLA, проектов, лицензий, журнала аудита.

Права хранятся в Keycloak как клиентские роли клиента ntdispatcher и передаются приложению в токене доступа. Механизм аутентификации и авторизации реализован на Keycloak — см. Управление доступом.

Роли

Чтобы не выдавать права поштучно, в Keycloak заведены три роли, собранные из атомарных прав. Пользователю назначается роль, а вместе с ней — все входящие в неё права.

РольНазначениеВходящие права
«Администратор» (Admin)Администратор платформыaccess, project.read, project.manage, scenario.read, scenario.edit, scenario.manage, storage.read, storage.edit, test.read, test.manage, sla.read, sla.edit, generator.read, generator.manage, license.read, license.manage, user.manage
«Пользователь» (User)Инженер по нагрузочному тестированиюaccess, project.read, scenario.read, scenario.edit, scenario.manage, storage.read, storage.edit, test.read, test.manage, sla.read, sla.edit, generator.read, generator.manage, license.read
«Администратор ИБ» (Auditor)Контроль событий безопасностиaccess, auditlog.read

В Keycloak Admin Console роли отображаются латинскими именами Admin, User и Auditor.

Роль «Пользователь» отличается от «Администратора» отсутствием прав project.manage, license.manage и user.manage. Право auditlog.read не входит ни в «Администратора», ни в «Пользователя» — журнал аудита читает только «Администратор ИБ».

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

Права доступа

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

Права на изменение включают соответствующее право на просмотр: выдав scenario.edit, отдельно выдавать scenario.read не нужно. Так же связаны generator.managegenerator.read, license.managelicense.read, project.manageproject.read, scenario.managescenario.read, sla.editsla.read, storage.editstorage.read, test.managetest.read.

ПравоЧто открывает
accessВход в Диспетчер. Проверяется на каждом запросе
project.readПросмотр списка проектов и выбор текущего проекта
project.manageРаздел «Проекты» в меню пользователя: создание, изменение и удаление проектов
scenario.readРаздел «Сценарии» и открытие сценария на просмотр
scenario.editСоздание, изменение и удаление сценариев; работа с артефактами, переменными, тестовыми данными, расписанием; сохранение и импорт
scenario.manageКнопки «Запустить» и «Валидировать» на странице сценария
storage.readРаздел «Хранилище» и выбор артефактов из хранилища в сценарий
storage.editИмпорт, обновление и удаление артефактов в хранилище
test.readРазделы «Тесты», «Сравнить тесты», карточка теста и результаты
test.manageОстановка и пауза теста, изменение числа потоков, изменение описания теста, обучение модели ИИ-анализатора
sla.readРаздел «SLA»: просмотр наборов, транзакций и целевых значений
sla.editСоздание, изменение, копирование и удаление наборов SLA
generator.readРазделы «Генераторы» и «Эмуляторы», карточки эмулятора и адреса
generator.manageДобавление, изменение и удаление генераторов, эмуляторов и их адресов
license.readРаздел «Лицензии»
license.manageЗагрузка, запрос и удаление лицензии
auditlog.readРаздел «Журнал аудита»
user.manageУправление пользователями. Разделов в интерфейсе Диспетчера не открывает — пользователи заводятся в Keycloak Admin Console

Поведение при нехватке прав

Если у пользователя нет права на раздел, при переходе в него открывается страница «Доступ запрещён». Раздел, требующий права, не отображается в меню пользователя.

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

Назначение прав в Keycloak

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

Назначение роли пользователю выполняется в Keycloak Admin Console:

  1. Открыть realm ntdispatcher.

  2. Перейти в раздел Users и выбрать пользователя.

  3. Открыть вкладку Role mapping.

  4. Назначить клиентскую роль клиента ntdispatcher: Admin, User или Auditor.

Вместо роли пользователю можно назначить отдельные права из таблицы выше — например, только access, test.read и storage.read для наблюдателя. Право access в таком наборе обязательно.

При установке с нуля платформа создаёт двух пользователей: dispatcheradmin с ролью «Администратор» и dispatcheruser с ролью «Пользователь». Пароли этих учётных записей необходимо сменить после первого входа — см. Настройки безопасности.

Роли ADMIN и USER предыдущих версий

До перехода на права доступа в платформе использовались две роли — ADMIN и USER. Они признаны устаревшими и заменены ролями «Администратор» (Admin) и «Пользователь» (User).

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

При обновлении платформа сама доназначает новые роли: пользователи с ролью ADMIN дополнительно получают «Администратора», с ролью USER — «Пользователя». Устаревшие роли при этом не снимаются и не удаляются — снять их нужно вручную в Keycloak Admin Console после проверки.

Устаревшая роль SECURITY_SUPERVISOR по-прежнему открывает раздел «Журнал аудита», но на роль «Администратор ИБ» (Auditor) при обновлении не переносится: пользователям с этой ролью нужно назначить Auditor вручную.

Внешние скрипты и интеграции, опирающиеся на ROLE_ADMIN и ROLE_USER, требуется перевести на права доступа.

Первый вход

При первом входе в систему требуется создать проект — без выбранного проекта разделы «Сценарии», «Тесты», «SLA» и «ИИ анализатор» работать не будут. Создание проекта доступно по праву project.manage.

Обновлено: