Взаимодействие компонент системы DECK.AUTH

Общая схема взаимодействия


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

HTTPS


В качестве вебсервера используется nginx, который предоставляет доступ к панели администратора и captive-порталу. Статические данные отдаются непосредственно nginx, а динамические данные проксируются в сторону php-fpm.

В nginx настроено два виртуальных сервера, один отвечает за панель администратора, воторой (default сервер) за captive-портал.

RADIUS


DECK.AUTH взаимодействут с активным оборудованием по протоколу RADIUS.

  • Принимает (access-request) и отвечает (access-accept или access-reject) на authentification запросы;
  • Принимает accounting пакеты;
  • Ретранслирует accounting пакеты, дополняя их информацией об абоненте.

В RADIUS сервере DECK.AUTH заложена логика работы с поддерживаемым системой оборудованием. Для получения специфичных для производителя атрибутов RADIUS пакета, сервер подгружает необходимые RADIUS словари с описанием спецификации этих атрибутов.

Параметры работы RADIUS сервера подгружаются из СУБД и периодически обновляются.

Логика работы RADIUS сервера с оборудованием определяется исходя из типа оборудования, предварительно созданного в панели администратора.

Полученная информация от оборудования сохраняется в СУБД системы.

API беспроводного оборудования


Часть беспроводных контроллеров, для осуществления полноценного процесса внешней аутентификации абонентов, предоставляют API. Такие API делятся на два типа:

  • API можно вызвать из внешней системы. В этом случае, этим занимается RADIUS сервер (CoA) или серверная часть captive-портала;
  • API можно вызвать только с устройства абонента. За это отвечает клиентская часть captive-портала (javascript).

Логика и принцип взаимодействия с оборудованием определяется исходя из типа оборудования, предварительно созданного в панели администратора.

AMQP


Для взаимодействия компонент внутри системы используется протокол AMQP на базе RabbitMQ. Выбор AMQP обусловлен возможностью в будущем горизонтального масштабирования и взаимодействия с внешними системами.

Внутри системы AMQP используется для маршрутизации RPC.

Ряд компонент получают RPC и выполняют их:

  • SMS сервис - отправка SMS;
  • SMPP сервис - отправка и получение SMS по протоколу SMPP;
  • Fidelio сервис - отправка запроса к Fidelio Агенту.

В будущих релизах планируется задействовать AMQP в слудующих целях:

  • События системы;
  • Аутентификационные сессии;
  • Уравление RADIUS;
  • Системный журал.