Что спросит технический согласователь — и что мы отвечаем, с версиями
Согласование прикладной системы срывается не на функциях, а на вопросах
«где это будет стоять», «куда оно ходит наружу» и «кто управляет доступом». Ниже —
ответы списком: варианты развёртывания, границы модулей, стек с версиями, интеграции
и перечень параметров, которые настраиваются под вашу организацию.
Развёртывание: в вашем контуре, без обращений наружу
Это первый вопрос службы информационной безопасности, поэтому ответ — здесь,
а не в конце страницы.
На площадке организации
Серверное приложение разворачивается в инфраструктуре организации — в собственном
центре обработки данных или в её частном облаке. Для работы продукту не нужны
обращения к внешним, не принадлежащим организации сервисам: аутентификация,
хранилище секретов, файловое хранилище и почтовый шлюз — это ваши системы,
подключаемые по адресам, которые задаёте вы.
Данные не покидают контур организации
Интеграции настраиваются параметрами, а не пересборкой
Секреты хранятся во внешнем хранилище секретов, а не в файлах приложения
Что не входит в поставку
Облачного сервиса по подписке: мультиарендности в продукте нет, разделение
по юридическим лицам — это функция предметной области, а не изоляция арендаторов
Мобильного приложения и публичного программного интерфейса для внешних
потребителей данных
Готовых сборочных образов и манифестов оркестратора в поставке — состав
поставки и способ развёртывания фиксируются на пилоте
Границы модулей: понятно, что чем занимается
Продукт собран из модулей с раздельной ответственностью. Практическая польза от этого
одна: интеграция, которая вам не нужна, просто не включается, а отказ внешней системы
не превращается в отказ всего приложения. Наведите курсор на название модуля — или
доберитесь до него клавишей Tab — чтобы увидеть, за что он отвечает.
Схема листается вбок — она шире экрана.
Границы модулей. Каждый модуль интеграции включается
отдельным параметром и имеет режим-заглушку — для стенда, где внешней системы ещё нет.
Модули и зона ответственности
Модуль
За что отвечает
Веб-слой
то, что видит пользователь: реестры, карточки, дашборды, выгрузки
Доменное ядро
правила предметной области: этапы, обязательные поля, расчёты, сроки
Безопасность
вход в систему и модель прав
Почтовый шлюз
доставка уведомлений по электронной почте
Файловое хранилище
хранение вложений и файлов отчётов вне базы данных
Система процессов
связь риска с бизнес-процессом и его владельцем
Стек с версиями
Версии названы там, где они зафиксированы в продукте.
Состав технологического стека
Слой
Что используется
Язык и платформа
Java 17
Каркас приложения
Spring Boot 2.7.18
Пользовательский интерфейс
ZK 9.6.2 — серверный рендеринг
Веб-контейнер
встроенный Tomcat 9.0.98; поставка в формате war
База данных
PostgreSQL, драйвер 42.7.2
Миграции схемы
Liquibase 4.23.0
Сборка
Gradle 8.1.1
Аутентификация
Keycloak как провайдер OpenID Connect
Секреты
HashiCorp Vault
Файлы
внешнее объектное файловое хранилище
Отчёты
формирование xlsx и docx по файлам-шаблонам
Наблюдаемость
служебные точки состояния и метрик, метрики в формате Prometheus
Контроль качества сборки
статические анализаторы кода в конвейере сборки
Безопасность и управление доступом
Продукт не заводит собственного каталога пользователей и собственного хранилища
паролей. Вход и права остаются в ваших системах — это и есть ответ на вопрос
«как мы будем отзывать доступ при увольнении».
Вход через OpenID ConnectKeycloak как провайдер; токен проверяется по набору ключей провайдера
Права — из внешнего модуля безопасностиразрешения и идентификатор сотрудника приходят по REST
Секреты — в хранилище секретовпараметры подключения не лежат в файлах приложения
Журналирование событий безопасностиотдельный журнал событий входа и отказов в доступе
Таймаут сессии60 минут бездействия
Экран отказа в доступеотдельная страница вместо пустого раздела без объяснений
Глубина ролевой модели описана отдельно: 12 типов объектов защиты, 5 действий,
27 именованных действий пользователя, права до вкладки карточки и сборка меню
из выданных прав — страница о правах доступа.
Для внешнего проверяющего и внешнего пользователя предусмотрены отдельные реестры
«только чтение», а не учётная запись с исключениями.
В продукте есть второй режим аутентификации — по файлу пользователей.
Он предназначен для разработки и на продуктивном контуре не используется;
рабочий режим — OpenID Connect. Говорим об этом прямо, чтобы вопрос не всплыл
на аудите.
Интеграции: каждая включается отдельно
У каждой внешней связи есть параметр включения и режим-заглушка. На стенде, где
почтового шлюза или файлового хранилища ещё нет, продукт запускается и работает —
интеграция просто выключена.
Интеграции продукта
С чем
Направление
Что даёт
Провайдер OpenID Connect
входящая аутентификация
единый вход, отзыв доступа — в вашем каталоге
Внешний модуль безопасности
исходящая, REST
разрешения пользователя и его идентификатор сотрудника
Почтовый шлюз
исходящая, REST
доставка уведомлений, вложения, пакетная отправка
Объектное файловое хранилище
исходящая, REST
вложения и файлы отчётов вне базы; ограничение файла — 700 МБ
Внешняя система управления процессами
исходящая, REST и загрузка по расписанию
процесс и владелец процесса в карточке риска и в выгрузке
Справочная информация организации
входящая, на уровне базы данных
сотрудники, подразделения, должности, юридические лица, клиенты и договоры
Хранилище секретов
исходящая, конфигурация
параметры подключения и учётные данные вне файлов приложения
Система сбора метрик
исходящая, мониторинг
состояние приложения и метрики в привычном для вас формате
Данные, справочная информация и импорт
Схема базы данных версионируется миграциями: обновление продукта не превращается
в ручные скрипты на продуктивной базе.
Четырнадцать справочников нормативно-справочной информации не ведутся в продукте:
они приходят из внешних учётных систем материализованными представлениями и
обновляются фоновой задачей. Обновления пишутся в отдельный журнал.
Массовая загрузка данных о манипулировании и запросах и предписаниях идёт через
промежуточную схему загрузки с проверкой ограничений: обязательность значения,
формат даты, число, строка, ссылочная целостность. Строки с предупреждениями
и ошибками подсвечиваются до того, как попадут в рабочие реестры.
Источники загрузки — файлы CSV и Excel, а также база данных.
Наблюдаемость и фоновые задачи
Служебные точки состояния и метрик включены; метрики отдаются в формате Prometheus.
Планировщик включается целиком одним параметром, каждая задача — отдельным
признаком. Расписания хранятся в базе и правятся в интерфейсе, без пересборки.
Параллельный запуск одной задачи на нескольких узлах кластера блокируется;
ошибка внутри задачи не останавливает планировщик.
Запуски пишутся в журналы со статусами: не запущен, исполняется, завершено,
завершено с ошибками, ошибка, отменено. В интерфейсе доступны журнал почтовых
уведомлений, журнал загрузки процессов и журнал обновления справочной информации.
Совместимость и параметры площадки
База данных — PostgreSQL
Продукт работает с PostgreSQL: драйвер и миграции схемы сделаны под неё,
схема разворачивается и обновляется миграциями Liquibase.
Перечень поддерживаемых операционных систем и браузеров, требования
к ресурсам, сроки внедрения, параметры сопровождения и модель лицензирования
фиксируются в коммерческом предложении под вашу площадку — по объёму данных,
числу пользователей и нагрузочному профилю.
Российская разработка, работа в вашем контуре
Разработчик — российская компания ООО «Ланселот-ИТ». Продукт разворачивается
в инфраструктуре организации и для работы не обращается к внешним, не принадлежащим
ей сервисам.
Что настраивается под вашу организацию
Продукт подстраивается под ваши регламенты настройкой, а не правкой кода.
Ниже — параметры, которые задаются на внедрении, и то, подо что они настраиваются.
Параметры, настраиваемые под организацию
Параметр
Под что настраивается
Расписания фоновых задач
регламент напоминаний вашей организации; хранятся в базе и правятся в интерфейсе
Состав ролей и матрица прав
структура подразделений и требования вашего процесса управления доступом
Перечень справочников НСИ и источники их загрузки
какие учётные системы у вас являются мастер-системами
Структура шаблонов отчётов
часть отчётов собирается по файлам-шаблонам вашей организации
Производственный календарь
заполняется на год: от него зависят все сроки в рабочих днях
Требования к ресурсам и режим сопровождения
объём данных, число пользователей, нагрузочный профиль
Способ развёртывания и состав поставки
принятые у вас правила размещения приложений
Документация
Публично мы выкладываем обзорные материалы: описание функционального контура,
перечень реестров и справочников, модель прав. Техническая документация —
руководство по развёртыванию, описание модели данных, описание программных интерфейсов
интеграции, регламент администрирования безопасности — передаётся по запросу
под соглашение о неразглашении. Публиковать её в открытом доступе означало бы
выкладывать карту системы, которая стоит в контуре заказчика.
Готовы пройтись по списку требований вашей службы информационной безопасности
и отдельно показать интеграции: вход, права, почта, файлы, справочная информация.