Перейти к основному содержанию

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

Около 4 мин

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

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

Схема процессов — DFD-3.

Где живёт учётная запись

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

ЧтоГде хранитсяКто управляет
Факт существования сотрудника, пароль, вторые факторыКорпоративный IdP (Keycloak, ADFS, Azure AD и др.)Кадровая служба, владелец IdP
Профиль в системе: почта, ФИО, должность, язык интерфейсаStormBPMNЗаполняется из IdP при входе, правится пользователем
Членство в командах и право в командеStormBPMNАдминистратор команды
Группы прав и привилегииStormBPMNАдминистратор команды
Ограничения доступа к папкам и викиStormBPMNАдминистратор команды, владелец папки
Занятое лицензионное местоStormBPMNСчитается системой

Отдельного каталога пользователей система не ведёт

StormBPMN не заменяет корпоративный каталог и не хранит пароли сотрудников, если включена корпоративная аутентификация. Встроенную аутентификацию по логину и паролю в продуктивной установке отключают переменной STORM_DISABLE_SIMPLE_AUTH.

Способы аутентификации

СпособКогда применяетсяНастройка
OAuth2 / OIDC, режим PKCEРекомендуемый для корпоративных установокСистема авторизации
OAuth2, режим implicit (legacy)Провайдер не поддерживает PKCE или выдаёт непрозрачный токенТам же
Microsoft ADFSИнсталляции с ADFSТам же
Встроенная аутентификацияПилоты и стенды без интеграции с каталогомОтключается в продуктиве
LDAPУстаревший способ, не рекомендуется для новых установокИнструкция — через менеджера

Срок жизни сессии задаётся переменной SESSION_EXPIRATION. По умолчанию после входа система выпускает собственный токен и живёт им независимо от провайдера. Если политика безопасности требует, чтобы отзыв сессии в провайдере немедленно разлогинивал пользователя, включается привязка сессии к SSO: токен продлевается по refresh_token, а отзыв в IdP прекращает работу в StormBPMN.

Жизненный цикл учётной записи

ЭтапСобытиеЧто происходит в системеКто инициирует
1. Появление сотрудникаСотрудник заведён в корпоративном каталогеВ StormBPMN ничего не происходит: система не опрашивает каталогКадровая служба
2. Первый входСотрудник открывает адрес системы и проходит аутентификацию в IdPСоздаётся профиль по подтверждённым атрибутам: почта, ФИО. Занимается лицензионное местоСотрудник
3. Приглашение в командуАдминистратор команды добавляет сотрудника по адресу электронной почтыСоздаётся участник со статусом «Приглашён», отправляется письмо. После принятия — статус «Участник»Администратор команды
4. Назначение правАдминистратор задаёт право в команде и включает участника в группы правПрава начинают действовать сразуАдминистратор команды
5. Изменение ролиПеревод сотрудника, смена обязанностейМеняется право в команде или состав групп; при необходимости — правила доступа к папкамАдминистратор команды
6. Приостановка доступаСотрудник в длительном отпуске, расследование инцидентаБлокировка в IdP прекращает вход. Дополнительно можно отключить учётную запись в административной панелиВладелец IdP, администратор системы
7. Прекращение доступаУвольнениеУчётная запись блокируется в IdP; администратор команды исключает участника из команд, освобождая праваВладелец IdP, администратор команды
8. Удаление профиляТребование политики хранения данныхУчётная запись удаляется, лицензионное место освобождаетсяАдминистратор системы

Блокировка в IdP не снимает членство в командах

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

Как сотрудник попадает в систему

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

  1. Самостоятельный вход через корпоративный каталог. Профиль создаётся при первом успешном входе по атрибутам от провайдера (почта — обязательна, ФИО — если провайдер их передаёт). Отдельная заявка не нужна: право войти определяется тем, что сотрудник есть в каталоге и ему разрешён доступ к приложению на стороне IdP.
  2. Приглашение в команду. Администратор команды указывает адреса электронной почты. Люди, которых ещё нет в системе, получают письмо с приглашением; учётная запись создаётся, когда человек входит.
  3. Встроенная регистрация. Форма самостоятельной регистрации; в продуктивной установке отключается параметром showRegistration.

Ограничение круга пользователей

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

Что хранится в профиле

АтрибутИсточникОбязателен
Адрес электронной почтыIdP или регистрацияДа, служит идентификатором
Полное имя, имя, фамилияIdP (синхронизируются при каждом входе) или ввод пользователемНет
ДолжностьВвод пользователемНет
Язык интерфейсаВыбор пользователяНет
АватарЗагрузка пользователемНет
Дата создания и дата последнего входаСистемаДа
Признак включённой учётной записиАдминистратор системыДа

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

Лицензионные места

Именная лицензия занимается активной учётной записью, конкурентная — одновременной сессией. Если при первом входе свободных мест нет, учётная запись создаётся в состоянии «Ожидает активации»: человек в системе есть, но работать не может, пока администратор не освободит или не добавит место. Подробнее — Как работают лицензии.

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

Прекращение доступа

Порядок действий при увольнении или переводе:

  1. Заблокировать или удалить учётную запись в корпоративном каталоге — вход прекращается сразу.
  2. Исключить участника из всех команд — снимаются права и освобождается место в рабочем пространстве.
  3. Проверить персональные доступы, выданные этому человеку на отдельные модели и папки.
  4. Передать другому сотруднику модели, где уволенный был автором, если это требуется регламентом.
  5. При необходимости удалить учётную запись, чтобы освободить лицензионное место.

Модели остаются в системе

Удаление учётной записи не удаляет созданные ею модели, карточки процессов и комментарии — это рабочие материалы организации. Авторство сохраняется в истории версий.

Аудит операций с пользователями

Все действия проходят через REST API и попадают в журнал действий. В журнале фиксируются вход и выход, обращения к данным, изменения прав и настроек; запись содержит время, идентификатор пользователя, сессию, метод и путь запроса, код ответа и адрес клиента.

Журнал направляется в один из каналов: вывод в консоль контейнера, отправка в SIEM по протоколу syslog, запись в отдельную базу данных TimescaleDB для длительного хранения и разбора инцидентов. Порядок включения и структура записи — Аудит-логирование.

Чек-лист для службы информационной безопасности