Управление пользователями
Управление пользователями
Раздел описывает полный жизненный цикл учётной записи: как сотрудник появляется в системе, как получает права, что происходит при изменении его роли и как доступ прекращается. Это тот артефакт, который на архитектурном ревью запрашивают под названием «процесс управления пользователями».
Схема процессов — 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 не снимает членство в командах
Если сотрудник заблокирован только в каталоге, войти он не сможет, но останется в списках участников команд и в выданных группах прав. Для корректного отзыва доступа исключите его из команд — иначе при восстановлении учётной записи в каталоге доступ вернётся автоматически.
Как сотрудник попадает в систему
Поддерживаются три пути; в корпоративной установке обычно используются первые два.
- Самостоятельный вход через корпоративный каталог. Профиль создаётся при первом успешном входе по атрибутам от провайдера (почта — обязательна, ФИО — если провайдер их передаёт). Отдельная заявка не нужна: право войти определяется тем, что сотрудник есть в каталоге и ему разрешён доступ к приложению на стороне IdP.
- Приглашение в команду. Администратор команды указывает адреса электронной почты. Люди, которых ещё нет в системе, получают письмо с приглашением; учётная запись создаётся, когда человек входит.
- Встроенная регистрация. Форма самостоятельной регистрации; в продуктивной установке отключается параметром
showRegistration.
Ограничение круга пользователей
Доступ к приложению ограничивается на стороне IdP: назначением приложения нужным группам каталога. Дополнительно администратор команды контролирует, кто входит в рабочие пространства и с какими правами.
Что хранится в профиле
| Атрибут | Источник | Обязателен |
|---|---|---|
| Адрес электронной почты | IdP или регистрация | Да, служит идентификатором |
| Полное имя, имя, фамилия | IdP (синхронизируются при каждом входе) или ввод пользователем | Нет |
| Должность | Ввод пользователем | Нет |
| Язык интерфейса | Выбор пользователя | Нет |
| Аватар | Загрузка пользователем | Нет |
| Дата создания и дата последнего входа | Система | Да |
| Признак включённой учётной записи | Администратор системы | Да |
Состав персональных данных и их классификация для карточки приложения — в разделе Обрабатываемые данные.
Лицензионные места
Именная лицензия занимается активной учётной записью, конкурентная — одновременной сессией. Если при первом входе свободных мест нет, учётная запись создаётся в состоянии «Ожидает активации»: человек в системе есть, но работать не может, пока администратор не освободит или не добавит место. Подробнее — Как работают лицензии.
Для процесса управления пользователями это означает: отзыв доступа у уволенных сотрудников нужно доводить до конца — только освобождение места позволяет принять нового сотрудника без расширения лицензии.
Прекращение доступа
Порядок действий при увольнении или переводе:
- Заблокировать или удалить учётную запись в корпоративном каталоге — вход прекращается сразу.
- Исключить участника из всех команд — снимаются права и освобождается место в рабочем пространстве.
- Проверить персональные доступы, выданные этому человеку на отдельные модели и папки.
- Передать другому сотруднику модели, где уволенный был автором, если это требуется регламентом.
- При необходимости удалить учётную запись, чтобы освободить лицензионное место.
Модели остаются в системе
Удаление учётной записи не удаляет созданные ею модели, карточки процессов и комментарии — это рабочие материалы организации. Авторство сохраняется в истории версий.
Аудит операций с пользователями
Все действия проходят через REST API и попадают в журнал действий. В журнале фиксируются вход и выход, обращения к данным, изменения прав и настроек; запись содержит время, идентификатор пользователя, сессию, метод и путь запроса, код ответа и адрес клиента.
Журнал направляется в один из каналов: вывод в консоль контейнера, отправка в SIEM по протоколу syslog, запись в отдельную базу данных TimescaleDB для длительного хранения и разбора инцидентов. Порядок включения и структура записи — Аудит-логирование.