Взаимодействие компонент системы 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;
- Системный журал.