Список HTTP атрибутов
Портал может отправлять точке следующие HTTP-атрибуты в заголовке.
Такие при авторизации:
- X-Eltex-CP-Eltex-User-State — индекс сценария пользователя.
- X-Eltex-CP-Eltex-State-Begin-Date — время начала сценария.
- X-Eltex-CP-Eltex-User-Create-Date — время создания пользователя.
- X-Eltex-CP-Eltex-Validity-Period — период жизни УЗ пользователя.
- X-Eltex-CP-Simultaneous-Use — лимит одновременного использования УЗ на разных устройствах.
- X-Eltex-CP-State-Count — количество сценариев.
- X-Eltex-CP-Eltex-State-Bandwidth-Max-Down-X — ограничение скорости загрузки (работают только с включенным QoS на точке).
- X-Eltex-CP-Eltex-State-Bandwidth-Max-Up-X — ограничение скорости выгрузки (работают только с включенным QoS на точке).
- X-Eltex-CP-Eltex-State-On-X — флаг, означающий что пользователь находится на сценарии X.
- X-Eltex-CP-Eltex-State-Session-Timeout-X — таймаут сессии согласно сценарию X.
- X-Eltex-CP-Eltex-State-Start-Session-Before-Redirect-X — флаг, означающий что сессию нужно начинать до редиректа согласно сценарию X.
Также портал отправляет точке заголовок для смены сценария:
- X-Eltex-CP-Eltex-User-State — индекс нового сценария пользователя. Отправляется в случае нажатия кнопки "продолжить", а также когда пользователь по ошибке попал на /adv-redirect, но при этом реклама на портале не включена.
Портал получает от точки следующие заголовки:
- X-Eltex-CP-Domain — домен виртуального портала.
- X-Eltex-CP-SSID — SSID, который настроен на портал.
- X-Eltex-CP-Name — название виртуального портала.
- X-Eltex-NAS-IP — IP-адрес точки доступа.
- X-Eltex-CP-State — состояние пользователя.
- X-Eltex-CP-Session-End-Reason — причина завершения сессии (time-over, traffic-over, session-over).
- X-Eltex-CP-Session-Bound — число, которое для каждого значения атрибута X-Eltex-CP-Session-End-Reason будет интерпретироваться по своему. Для time-over - кол-во секунд, заданное на радиусе через Eltex-Work-Time-Limit, traffic-over - кол-во байт, заданное на радиусе через.
- Eltex-Traffic-Limit, session-over - количество секунд сессии, заданное через радиус или через настройки Конструктора Порталов.
- X-Eltex-CP-Client-MAC — MAC-адрес клиента.
- X-Eltex-CP-Client-IP — IP-адрес клиента.
- X-Eltex-CP-AP-MAC — MAC-адрес точки доступа.
- X-Eltex-CP-Client-Login — логин клиента.
- X-Eltex-CP-AP-IP-Alias — алиас точки доступа.
- X-Eltex-CP-AP-Location — географический домен ТД.
Параметры:
- X-Eltex-CP-Eltex-State-Bandwidth-Max-Down-X
- X-Eltex-CP-Eltex-State-Bandwidth-Max-Up-X
Работают только с включенным Client QoS Global Admin Mode на точке! Настройка в EMS
Алгоритм работы с портальными пользователями на точках доступа Eltex.
Пример использования:
Изначально пользователь считается неавторизованным, будет направлен по ссылке из настроек SSID и ограничен в доступе External URL + белыми списками APB.
Инструкции для настройки:
- Настройка портального SSID и подключение ТД к APB . В поле External URL указывается адрес редиректа при подключении неавторизованного клиента.
- Настройка APB и белых списков. Список источников, разрешенных для неавторизованного пользователя. Например, для авторизации через ЕСИА необходимо добавиться адрес esia.gosuslugi.ru в белые списки, для того, чтобы неавторизованный пользователь имел доступ до данного источника.
При подключении пользователя точка передает информацию об устройстве пользователя в заголовках:
'HTTP_X_ELTEX_CP_AP_LOCATION' => 'LOCATION'
'HTTP_X_ELTEX_CP_ORIGIN_URL' => 'http://init-p01st.push.apple.com/?v=1'
'HTTP_X_ELTEX_CP_SSID' => 'SSID'
'HTTP_X_ELTEX_CP_CLIENT_IP' => 'CLIENT_IP'
'HTTP_X_ELTEX_NAS_IP' => 'IP_AP'
'HTTP_X_ELTEX_CP_AP_MAC' => 'MAC_AP'
'HTTP_X_ELTEX_CP_DOMAIN' => 'PORTAL_DOMAIN'
'HTTP_X_ELTEX_CP_STATE' => 'not-auth'
'HTTP_X_ELTEX_CP_CLIENT_MAC' => 'MAC'
'HTTP_X_ELTEX_CP_NAME' => 'PORTAL'
Пользователь будет считаться неавторизованным пока на точку для данного устройства не придёт сценарий. Пример сценария (с лимитом времени доступа 30 минут, трафика 1 ГБайт и скоростью 5 Мбит/с):
X-Eltex-CP-Username: MAC
X-Eltex-CP-Eltex-User-State: 1
X-Eltex-CP-Eltex-Traffic-Limit: 1048576000
X-Eltex-CP-State-Count: 1
X-Eltex-CP-Eltex-State-Bandwidth-Max-Down-1: 5120000
X-Eltex-CP-Eltex-State-Bandwidth-Max-Up-1: 5120000
X-Eltex-CP-Eltex-State-On-1: true
X-Eltex-CP-Eltex-State-Session-Timeout-1: 1800
X-Eltex-CP-Eltex-State-Start-Session-Before-Redirect-1: false
X-Eltex-CP-Eltex-State-Traffic-Limit-1: 1048576000
Сценариев может быть сразу несколько с разными ограничениями. При достижении лимитов будет осуществлён переход в следующий сценарий если следующего сценария нет - клиент снова попадет на портал для повторной авторизации.
Проверка полученных сценариев
Для проверки успешности применения высланных Вами на точку сценариев, в CLI ТД воспользуйтесь командой:
get cp-auth-client-scenario
Эта команда выведет список авторизованных на ТД устройств и их квот. Если данные сходятся, то заголовки отправлены корректно.
Портальная авторизация через RADIUS-сервер
Описание взаимодействий:
- При подключении клиента ТД проксирует все его запросы на портал и шлет клиенту redirect по External URL из настройки SSID (для портальной авторизации через radius параметр Verification в блоке Captive Portal настроек SSID должен быть "RADIUS").
- На портале клиент вводит свои учетные данные. По учетным данным клиента портал создаёт пользователя на radius-сервере или проверяет наличие данного пользователя.
- На ТД перехватывается HTTP POST от клиента к порталу и вычитываются поля "login" и "password". По этим данным ТД запрашивает у radius-сервера доступ в сеть для данного пользователя.
- Если пользователь есть на radius-сервере и ему разрешен доступ в сеть, то на ТД от radius-сервера приходит Accept, для данного пользователя ТД начинает отправлять аккаунтинг на radius- сервер, и пользователь получает доступ в сеть.
Формат HTTP-заголовков и атрибуты для radius-авторизации можно посмотреть в дампе ниже.
Дамп успешной портальной авторизации через radius-сервер.