Безопасность
Информационная безопасность
StormBPMN Enterprise обеспечивает высокий уровень информационной безопасности через многоуровневую систему защиты, включающую регулярное обновление зависимостей, сканирование уязвимостей и гибкие настройки доступа.
Принципы безопасности
- Минимальные привилегии - только необходимые права
- Глубокая защита - многоуровневая система безопасности
- Аудит всех действий - полное логирование операций
- Шифрование данных - защита паролей и конфиденциальной информации
Переменные окружения безопасности
Базовые настройки безопасности задаются через ENV переменные:
Переменная | Описание | Пример значения | По умолчанию |
---|---|---|---|
STORM_ALLOWED_ORIGINS | Разрешенные источники запросов (CORS) | https://stormbpmn.company.com | * |
STORM_DISABLE_SIMPLE_AUTH | Отключить встроенную авторизацию | true | false |
STORM_DISABLE_ENV_IN_UI | Скрыть ENV переменные в админке | true | false |
STORM_DISABLE_ANON_SHARING | Запретить анонимный доступ к диаграммам | true | false |
JWTSECRET | Соль для шифрования паролей | Минимум 15 случайных символов | - |
Рекомендации по безопасности
- STORM_ALLOWED_ORIGINS: Обязательно укажите конкретные домены вместо
*
в production - JWTSECRET: Используйте криптографически стойкую случайную строку
- STORM_DISABLE_ENV_IN_UI: Включите в production для скрытия конфиденциальных данных
Настройки в административной панели
Управление пользователями
Параметр | Описание | Рекомендация для production |
---|---|---|
showRegistration | Показать форму регистрации | ❌ Отключить |
showBasicLogin | Показать поля логин/пароль | ❌ При использовании OAuth2 |
showCustomLoginButtonName | Кастомный текст кнопки входа | По требованию |
customLoginButtonName | Текст на кнопке входа | "Войти через корпоративный аккаунт" |
Публичный доступ
Параметр | Описание | Рекомендация для production |
---|---|---|
enableAnonSearchPage | Поиск для неавторизованных | ❌ Отключить |
allDiagramsAnonAccess | Анонимный доступ ко всем диаграммам | ❌ Отключить |
Корпоративные настройки
Параметр | Описание | Рекомендация |
---|---|---|
enableCommonAssets | Общие элементы архитектуры для всех команд | ✅ Включить для больших компаний |
enableCommonRoles | Общие роли для всех команд | ✅ Включить для унификации |
enableCommonUsers | Общая оргструктура для всех команд | ✅ Включить для централизации |
SIEM-логирование
StormBPMN поддерживает полное аудит-логирование всех действий пользователей с отправкой в системы SIEM.
Возможности
- ✅ Полное логирование всех авторизованных операций
- ✅ Маскирование паролей и авторизационных заголовков
- ✅ Фильтрация больших данных (содержимое диаграмм не логируется)
- ✅ Поддержка Syslog по протоколу TCP (RFC 3164 / RFC 5424)
- ✅ Уникальные ID сессий для трассировки действий
Настройка Syslog
Переменная | Описание | Пример значения | Обязательно |
---|---|---|---|
AUDIT_ENABLED | Включение аудита запросов | true | ✅ |
AUDIT_CHANNEL | Канал аудит-логов | syslog | ✅ |
SYSLOG_SERVERS | Список syslog серверов | localhost:514,192.168.78.53:601 | ✅ |
SYSLOG_SOURCE | Название приложения в логах | stormbpmn | 🔧 |
SYSLOG_MESSAGE_FORMAT | Формат логов | RFC_5424 / RFC_3164 | 🔧 |
Оригинальный IP-адрес пользователя
Для отображения оригинального IP-адреса нужно передать в контейнер заголовок X-Forwarded-For от вышестоящего прокси.
Структура лог-записи
{
"timestamp": "2007-12-03T10:15:30:55.000000",
"sessionId": "ergjieor-ergjniuo-qjwer",
"source": "stormbpmn",
"subject": "kotov@bpmn2.ru",
"subjectIP": "192.168.0.1",
"object": "uaerhgae-aerj3234-egerg",
"resource": "diagram",
"action": "CHANGE",
"payload": {
"method": "POST",
"url": "/api/v1/diagram",
"request": { "..." },
"response": { "..." }
},
"result": "SUCCESSFUL"
}
Типы событий
Действие | Описание |
---|---|
GET | Просмотр объекта |
CREATE | Создание объекта |
CHANGE | Изменение объекта |
DELETE | Удаление объекта |
Результат | Описание |
---|---|
SUCCESSFUL | Успешная операция |
CLIENT_ERROR | Ошибка клиента |
SERVER_ERROR | Ошибка сервера |
Система авторизации
OAuth2 (рекомендуется)
Корпоративная авторизация через внешние провайдеры (Keycloak, Azure AD, и др.)
Параметр | Описание | Пример значения |
---|---|---|
OAuthIsEnabled | Включение OAuth2 | true |
OAuthClientId | ID клиента в провайдере | stormbpmn-client |
OAuthClientSecret | Секрет клиента | your-client-secret |
OAuthAuthorizeUri | URL авторизации | https://keycloak.company.com/auth/realms/master/protocol/openid-connect/auth |
OAuthUserInfoUri | URL получения информации о пользователе | https://keycloak.company.com/auth/realms/master/protocol/openid-connect/userinfo |
OAuthTokenUri | URL получения токена | https://keycloak.company.com/auth/realms/master/protocol/openid-connect/token |
OAuthButtonLabel | Текст на кнопке входа | "Войти через корпоративный аккаунт" |
OAuthRedirectUri | URL возврата после авторизации | https://stormbpmn.company.com/app/signin |
Проверка Claims
Дополнительная проверка прав в токене OAuth2:
Параметр | Описание | Пример значения |
---|---|---|
OAuthCheckClaim | Включить проверку | true |
OAuthClaimName | Название claim | groups |
OAuthClaimValue | Требуемое значение | stormbpmn-users |
Настройка Keycloak
Пошаговая инструкция для Keycloak 26.0.7:
- Создать клиента в нужном realm
- Client ID:
stormbpmn-client
- Valid redirect URIs:
https://stormbpmn.company.com/app/signin
- Web origins:
https://stormbpmn.company.com
- Client authentication: ON
- Standard flow: ON, Implicit flow: ON
- Client Scopes: email и profile должны быть default
- Получить Client Secret на вкладке Credentials
Встроенная авторизация
Только для тестирования
Встроенная авторизация подходит только для тестовых сред. В production используйте OAuth2.
Аварийный вход: Добавьте ?showBasicLogin=true
к URL входа для доступа к базовой форме, даже если OAuth2 включен.
Чек-лист безопасности
Обязательные настройки
Дополнительные меры
Связанная документация
- Конфигурация - полный справочник настроек
- Production-Ready - настройка для продакшена
- Мониторинг - метрики и алерты
Нужна помощь?
По вопросам безопасности обращайтесь к help@stormbpmn.com или вашему менеджеру.