О приложении
Архитектура приложения
-
Клиент
В роли клиентов приложения могут выступать:- Пользовательский веб-браузер: Интерфейс, с которым взаимодействуют пользователи.
- Внешняя система: Программы и сервисы, которые используют API для подачи запросов и взаимодействия с приложением.
-
Веб-сервер
Nginx отвечает за прием входящих HTTPS-запросов, перенаправление запросов на сервер приложения по HTTP, балансировку нагрузки между различными экземплярами сервера приложения, кеширование статического контента. -
Сервер приложения
Node.js приложение, обрабатывающее бизнес-логику и взаимодействующее с другими компонентами системы. Обрабатывает входящие запросы по HTTP на порт 8080, поступающих от веб-сервера. Формирует ответы и отправляет их обратно через веб-сервер к клиенту. Используется многопроцессная архитектура для масштабирования нагрузки (запускается отдельный процесс для каждого ядра процессора). -
Агрегация статистики
ClickHouse обеспечивает хранение и обработку статистических данных. Например, позволяет сохранять информацию о количестве активных пользователей за день или месяц, количестве созданных объектов и т.д. -
Межпроцессное взаимодействие
Redis: Хранилище данных в памяти, используемое для обмена данными между процессами. Обеспечивает синхронизацию и координации между процессами, работающими на разных ядрах процессора. Кеширует данные для ускорения доступа и уменьшения нагрузки на базы данных. -
Хранение структурированных данных
MongoDB используется для хранения досок, команд и проектов. -
Файловое хранилище
S3-совместимое хранилище, работающее по AWS SDK v2 и v3. Служит для размещения пользовательских файлов различного типа (изображения, документы, медиа-файлы).
Функциональные возможности и особенности приложения
-
Приложение поддерживает AstraLinux, Ubuntu и другие операционные системы, обеспечивающие работу контейнеризации.
-
Приложение можно развернуть с использованием Docker, Docker Compose и Kubernetes с применением helm chart по запросу.
-
Поддерживается интеграцию с другими on-premises решениями.
-
Поддерживается шифрование данных между всеми узлами приложения.
-
Приложение работает с базами данных MongoDB и PostgreSQL.
-
Поддерживается работа в нескольких инстансах.
-
Приложение разработано с учетом принципов отказоустойчивости.
-
Приложение может полноценно функционировать в изолированной инфраструктуре.
-
Поддерживается работа с syslog.
-
Приложение поддерживает SAML, OpenID и LDAPS для реализации единого входа (SSO).
-
Поддерживаются механизмы многофакторной аутентификации для повышения безопасности.
-
Возможна загрузка пользователей из Active Directory.
-
Все учетные записи в приложении персонифицированы.
Сетевые параметры
Порт | Назначение | Протокол | Трафик | Шифрование | Алгоритм шифрования | Тип | Комментарий |
---|---|---|---|---|---|---|---|
443 |
Внешний доступ к приложению через nginx (HTTPS) со стороны клиента | TLS (HTTPS) | Внешний | Да (TLS 1.2 или 1.3) | ECDHE-RSA-AES256-GCM-SHA384 | Н | Порт может быть изменен в конфигурации nginx |
8080 |
Внутренние экземпляры backend-приложения (по числу CPU) | HTTPS | Внутренний | Да (TLS 1.3) | TLS_AES_256_GCM_SHA384 | Н | Прокси через nginx, порт зависит от числа процессов и настройки приложения. Например 8080–8087 |
9000 |
Обращения к внешнему хранилищу (S3 API, AWS v2 или v3) | HTTPS (S3 API) | Внешний | Да | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 и др. | Н | Используется как endpoint для доступа к объектному хранилищу |
541 |
Отправка логов на syslog-сервер | UDP или TCP | Внешний или внутренний | Зависит от конфигурации | Зависит от конфигурации | Н | Может быть как TCP, так и UDP. TLS обычно не включен |
6379 |
Redis (in-memory key-value хранилище) | Redis протокол | Внутренний | Нет | Не применяется | Н | Требует включения TLS для соответствия ИБ |
5432 |
PostgreSQL (БД приложения) | PostgreSQL | Внутренний | Нет | Не применяется | Н | Приложение не поддерживает работу с TLS |
389 |
LDAP | LDAP (TCP) | Внешний или внутренний | Нет | Не применяется | Н | Без шифрования, для поиска пользователей |
636 |
LDAPS | LDAP over TLS | Внешний или внутренний | Да | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 и др. | Н | TLS-версия LDAP, используется для безопасной аутентификации |
Условные обозначения для портов:
Н — настраиваемый. Можно изменить в конфигурации приложения.
Ф — фиксированный, не настраиваемый.
Криптографическая защита
Используемые хеш-алгоритмы — bcrypt.