2.1. Компонент Avanpost FAM Server - Avanpost FAM/MFA+

Общие сведения

Avanpost FAM Server – основной компонент системы аутентификации, который предоставляет потребителям услуги аутентификации, набор веб-сервисов и API для других компонентов системы.

Компонент обеспечивает решение следующих задач:

  • Хранение данных системы (в связке с БД в СУБД PostgreSQL);
  • Обработка всех запросов на аутентификацию как с использованием одного, так и нескольких факторов аутентификации;
  • Обработка фоновых задач и запросов (если для узла разрешается выполнение фоновых задач), включая cинхронизацию и интеграцию с LDAP-каталогами в рамках механизма интеграции с LDAP;
  • Публикация интеграционного интерфейса OpenID Connect;
  • Публикация интеграционного интерфейса SAML;
  • Публикация интеграционного интерфейса RADIUS;
  • Публикация интеграционного интерфейса gRPC (компонент Linux Logon, компонент Windows Logon, компонент LDAP Proxy);
  • Публикация административной консоли (SPA-приложения adminconsole из состава системы);
  • Публикация личного кабинета (SPA-приложения lk-client из состава системы);

Системные требования

Установка компонента рекомендуется на следующих серверных операционных системах и платформах:

ПлатформаОперационная системаФормат поставкиВеб-серверСУБД
Docker, Kubernetes, любая современная платформа виртуализации (VMWare VSphere 7+, Microsoft Hyper-V и т.д.)Oracle Linux 8, Oracle Linux 9rpm-пакет, .tar.gz-архивNginx 1.25
  • PostgreSQL 9.4, 9.5, 9.6, 10, 11, 12, 13;
  • PostgresPro Standard 9.5, 9.6, 10, 11, 12;
  • PostgresPro Enterprise 9.6, 10, 11, 12;
  • PostgresPro Certified;
  • PostgresPro Enterprise Certified.
CentOS 7, CentOS 8, CentOS Streamrpm-пакет, .tar.gz-архив
RHEL 7, RHEL 8rpm-пакет, .tar.gz-архив
Альт (Alt) 8 СП Сервер, Альт Сервер 9, Альт Сервер 10rpm-пакет, .tar.gz-архив
РедОС Сервер 7rpm-пакет, .tar.gz-архив
Astra Linux 1.6 SE, Astra Linux 1.7 SE, Astra Linux 2.11 CE, Astra Linux 2.12 CEdeb-пакет, .tar.gz-архив
Debian 11, Debian 12, Debian 13deb-пакет, .tar.gz-архив

Архитектура

На схеме изображены возможные взаимодействия компонента Avanpost FAM Server c другими компонентами системы (нумерация списка соответствует нумерации стрелок на схеме):

  1. Передача запросов от пользователей и клиентских компонентов системы к Avanpost FAM Server;
  2. Отправка исходящих запросов на аутентификацию в мобильное приложение Avanpost Authenticator и обработка входящих запросов от мобильного приложения через компонент Avanpost FAM Mobile Services;
  3. Выполнение подписи сообщений через криптопровайдер (опционально при необходимости использования ГОСТ-алгоритмов подписи и шифрования);
  4. Чтение и сохранение данных;
  5. Отправка запросов на аутентификацию со стороны Windows АРМ с установленным Avanpost FAM Windows Logon;
  6. Отправка запросов на аутентификацию со стороны Windows АРМ с установленным Avanpost FAM Agent для сценариев интеграции с Enterprise SSO-приложениями;
  7. Отправка запросов на аутентификацию со стороны Linux АРМ с установленным Avanpost FAM Linux Logon;
  8. Передача запросов на аутентификацию в мобильное приложение-аутентификатор Avanpost Authenticator через интернет/DMZ/сетевую инфраструктуру.
  9. Передача запросов на аутентификацию со стороны Avanpost FAM LDAP Proxy для сценариев интеграции приложений с поддержкой только LDAP-аутентификации.

В состав компонента Avanpost FAM Server входят следующие обязательные модули:

  • Avanpost FAM Server;
  • Nginx.

Допускается использование другого веб-сервера вместо Nginx при выполнении ручной настройки публикации веб-интерфейсов с учётом особенностей указанного веб-сервера.

Также для функционирования Avanpost FAM Server обязательно использование базы данных на основе СУБД PostgreSQL (компонент Avanpost FAM Database).

Дополнительно для выполнения отдельных операций может потребоваться использование в составе Avanpost FAM Server криптопровайдера, к примеру, КриптоПро CSP.

Сетевые взаимодействия

Схема доступных сетевых взаимодействий:

В таблице указаны сетевые интерфейсы компонента Avanpost FAM Server доступные для внешних вызовов:

Сетевой интерфейсНазначениеПротоколПорты по умолчанию
Web Auth UIАутентификация в веб-приложения, подключенные через OAuth/OpenID Connect, SAML, Reverse ProxyHTTP80
SelfService Web UIСамообслуживание пользователей через веб-интерфейс личного кабинетаHTTP80
Admin Web UIАдминистрирование системы через веб-интерфейс административной консолиHTTP80
Reverse ProxyВнешние запросы пользователей в направлении веб-приложений, подключенных к механизму Reverse ProxyHTTP80
gRPC APIЗапросы со стороны прикладных компонентов Windows Logon (Credential Provider), Linux Logon (PAM Linux), Agent, LDAP ProxygRPC9007
REST APIУправляющие запросы со стороны произвольных прикладных интеграцийHTTP80
MetricsЗапросы на сбор метрик HTTP80

В таблице указаны внешние обращения к другим сетевым интерфейсам со стороны компонента Avanpost FAM Server:

МеханизмНазначениеПротоколПорты по умолчанию
Syslog Отправка сообщений по syslogHTTP80
Mobile ServicesОтправка Push-запросов, обработка внешних запросов на Mobile API для мобильного приложения-аутентификатораHTTP80
LDAP SyncLDAP-синхронизация, LDAP-аутентификацияHTTP80

Варианты развёртывания

Стандартное развёртывание

Выполняется в конфигурации одного узла.

Рекомендуется развёртывание с использованием как минимум 2 серверов/VM:

  • Сервер приложений;
  • Сервер БД.

Отказоустойчивое развёртывание

Описано в статье про развёртывание системы.

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

Шифрование секретов и одноразовых кодов

Для шифрования секретов используется алгоритм AES в режиме CBC с ключом длиной 512 бит.

Надёжно шифруется и хранится в зашифрованном виде в полях БД следующая информация:

  • Пароли учётных записей, которые требуется хранить в обратимом виде для подстановки за пользователя в режимах Reverse Proxy и Enterprise SSO;
  • Секреты OpenID Connect-приложений;
  • Секреты для TOTP;
  • Разделяемые секреты RADIUS NAS;
  • Пароли технологических УЗ для подключения к LDAP-каталогам;
  • Одноразовые коды, используемые при отправке и временно хранимые в БД:
    • OTP в SMS;
    • OTP в E-mail;
    • одноразовые коды для Avanpost Authenticator;
    • OTP в push-оповещениях, отправляемые посредством мессенджера (Telegram).

Необратимое хеширование паролей пользователей

Для защиты основных паролей, которые хранятся в БД, а также секретов, для которых не требуется восстановление, по умолчанию используется необратимое хеширование при помощи алгоритма bcrypt со значением cost равным 10.

Обсуждение