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

Безопасность

Около 2 мин

Информационная безопасность

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

Принципы безопасности

  • Минимальные привилегии - только необходимые права
  • Глубокая защита - многоуровневая система безопасности
  • Аудит всех действий - полное логирование операций
  • Шифрование данных - защита паролей и конфиденциальной информации


Переменные окружения безопасности

Базовые настройки безопасности задаются через ENV переменные:

ПеременнаяОписаниеПример значенияПо умолчанию
STORM_ALLOWED_ORIGINSРазрешенные источники запросов (CORS)https://stormbpmn.company.com*
STORM_DISABLE_SIMPLE_AUTHОтключить встроенную авторизациюtruefalse
STORM_DISABLE_ENV_IN_UIСкрыть ENV переменные в админкеtruefalse
STORM_DISABLE_ANON_SHARINGЗапретить анонимный доступ к диаграммамtruefalse
JWTSECRETСоль для шифрования паролейМинимум 64 случайных символов-
SESSION_EXPIRATIONСрок жизни сессии8640000086400000

Рекомендации по безопасности

  • STORM_ALLOWED_ORIGINS: Обязательно укажите конкретные домены вместо * в production
  • JWTSECRET: Используйте криптографически стойкую случайную строку длиной не менее 64 символов — токены подписываются алгоритмом HS512, которому нужен ключ ≥512 бит. С коротким ключом вход пользователей упадёт с WeakKeyException
  • STORM_DISABLE_ENV_IN_UI: Включите в production для скрытия конфиденциальных данных


Настройки в административной панели

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

ПараметрОписаниеРекомендация для production
showRegistrationПоказать форму регистрации❌ Отключить
showBasicLoginПоказать поля логин/пароль❌ При использовании OAuth2
showCustomLoginButtonNameКастомный текст кнопки входаПо требованию
customLoginButtonNameТекст на кнопке входа"Войти через корпоративный аккаунт"

Публичный доступ

ПараметрОписаниеРекомендация для production
enableAnonSearchPageПоиск для неавторизованных❌ Отключить
allDiagramsAnonAccessАнонимный доступ ко всем диаграммам❌ Отключить

Корпоративные настройки

ПараметрОписаниеРекомендация
enableCommonAssetsОбщие элементы архитектуры для всех команд✅ Включить для больших компаний
enableCommonRolesОбщие роли для всех команд✅ Включить для унификации
enableCommonUsersОбщая оргструктура для всех команд✅ Включить для централизации


Аудит-логирование

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



Система авторизации

Корпоративная авторизация (OAuth2, Keycloak, Microsoft ADFS), проверка claims и встроенный вход вынесены в отдельную статью — Система авторизации.


Добавление собственных SSL-сертификатов

Проблема

Если вы используете свой MinIO, S3 или другой HTTPS-сервис с самоподписанным сертификатом, Java внутри контейнера может не доверять ему. Это приведёт к ошибке:

javax.net.ssl.SSLHandshakeException: PKIX path building failed

Решение

Необходимо смонтировать свой truststore.jks, заменив стандартный truststore Java.

Шаг 1. Создание truststore.jks

Если у вас есть файл сертификата (например, minio-ca.crt), выполните:

keytool -importcert \
  -file minio-ca.crt \
  -alias my-root-ca \
  -keystore truststore.jks \
  -storepass changeit \
  -noprompt

Пароль truststore

Пароль changeit — стандартный для Java truststore. Можно использовать другой, но он должен совпадать в команде и при запуске.

Шаг 2. Путь к truststore в контейнере

Контейнер StormBPMN использует образ eclipse-temurin:11-jre-alpine. Путь к стандартному truststore:

/opt/java/openjdk/lib/security/cacerts

Проверка пути

Если монтирование не работает, проверьте актуальный путь командой:

docker run --rm eclipse-temurin:11-jre-alpine find /opt -name "cacerts" 2>/dev/null

Шаг 3. Запуск с заменой truststore

В docker-compose.yml:

services:
    stormbpmn:
        image: _ваш_образ_
        volumes:
            - ./truststore.jks:/opt/java/openjdk/lib/security/cacerts:ro

Или в командной строке:

docker run \
  -v $(pwd)/truststore.jks:/opt/java/openjdk/lib/security/cacerts:ro \
  _ваш_образ_

Результат

Java в контейнере будет использовать ваш truststore и доверять указанным сертификатам. Никаких изменений в переменных окружения не требуется.


Чек-лист безопасности

Обязательные настройки

Дополнительные меры



Связанная документация

Нужна помощь?

По вопросам безопасности обращайтесь к help@stormbpmn.com или вашему менеджеру.