
Введение
Начиная с версии ПО WLC 1.39.2 поддержан функционал external-portal-manager, который позволяет обрабатывать входящие HTTP-запросы от внешнего портала для авторизации беспроводных клиентов.
Данный функционал может быть использован эксплуатациями со своим индивидуальным внешним порталом.
Функционал работает на ТД моделей: WOP-20L, WEP-200L, WEP-30L, WEP-30L-NB, WEP-30L-Z, WOP-30L, WOP-30LS, WOP-30LI начиная с версии ПО 2.12.0 |
Схема взаимодействия при первом подключении клиента

Описание схемы взаимодействия при первичном подключении клиента:
- Установка соединения клиента с ТД.
- ТД выполняет MAB для клиента на RADIUS-сервере.
- Проверка наличия УЗ клиента для MAB в БД.
- Так как клиент подключается впервые, УЗ клиента для MAB отсутствует в БД.
- ТД получает Access-Reject от RADIUS-сервера.
- Клиент пытается посетить какой-либо ресурс, через HTTP GET-запрос.
- ТД перехватывает запрос клиента, подставляет значения wildcard-параметров из redirect-url-custom и перенаправляет запрос на страницу портала.
- Клиент попадает на страницу редиректа, проходит процесс авторизации и отправляет учетные данные на внешний портал.
- Внешний портал проверяет и сохраняет учетные данные клиента в БД.
- Внешний портал, получив учетные данные клиента, обрабатывает их и после отправляет HTTP POST-запрос к WLC. Куда отправить ответный HTTP-запрос, внешний портал узнает из параметра LOGIN_URL, который содержится в redirect-url-custom.
- WLC валидирует наличие обязательных параметров в HTTP POST-запросе для аутентификации клиента. В случае, если все обязательные параметры присутствуют, проверяется наличие информации по клиенту, и к какой ТД он подключен, затем отправляется запрос на ТД для аутентификации клиента.
- ТД отправляет RADIUS-запрос Acess-Request, подставляя в RADIUS-атрибуты значений User-name и User-Password, которые были переданы от внешнего портала в виде параметров username и password в http-запросе на шаге №4. После отправки RADIUS-запроса запускается таймаут, который задается через параметрradius-response-timeout (10 секунд по умолчанию).
- RADIUS-сервер проверяет наличие УЗ клиента в БД.
- RADIUS-сервер получает результат проверки наличия УЗ клиента в БД.
- RADIUS-сервер отправляет ответ Access-Accept на запрос ТД на шаге 12.
- ТД отправляет уведомление на WLC, что клиент успешно авторизован. Запись сохраняется в журнале клиентов.
- WLC отправляет HTTP RESPONSE на HTTP REQUEST, который был отправлен на шаге 4 от внешнего портала.
- Внешний портал сохраняет УЗ клиента для MAB. Каждый раз при подключении к новой ТД либо роуминге, ТД будет выполнять MAB и, так как УЗ клиента уже будет храниться в БД, клиент будет аутентифицирован без взаимодействия со страницей портала.
- ТД перенаправляет клиента на изначально запрошенный ресурс.
Схема взаимодействия повторного подключения клиента

Описание схемы взаимодействия при повторном подключении клиента или роуминге между ТД.
- Установка соединения клиента с ТД.
- ТД выполняет MAB для клиента на RADIUS-сервере.
- Проверка наличия УЗ клиента для MAB в БД.
- УЗ клиента присутствует в БД, так как клиент подключается повторно к новой ТД либо совершает роуминг.
- ТД получает Access-Accept от RADIUS-сервера.
- Клиент пытается посетить какой-либо ресурс через запрос HTTP GET.
- ТД предоставляет доступ клиенту на запрошенный внешний ресурс.
Структура запроса от внешнего портала
Данные передаются в теле запроса HTTP POST в строке вида: <ключ>=<значение>, разделенных знаком &.
Пример тела HTTP-запроса:
cmd=login&client-mac=60a5e22c74be&ip-address=10.25.229.12&username=eltex-user&password=0i10EGAKP0TAHkratgWKKZEzOk9HL2ZMAyEH5luq |
Таблица описание параметров:
| Параметр | Описание | Обязательный или необязательный |
|---|
| cmd | На текущий момент, начиная с версии WLC 1.39.2, поддерживается только команда: login | Обязательный |
| client-mac | MAC-адрес клиента в одном из форматов: - xxxxxxxxxxxx
- xx:xx:xx:xx:xx
| Обязательный |
| ip-address | IP-адрес клиента в формате: | Обязательный |
| username | Username клиента. Значение данного параметра передаются в RADIUS-запросе Acess-Request в рамках атрибута User-name | Обязательный |
| password | Пароль клиента. Значение данного параметра передается в RADIUS-запросе Acess-Request в рамках атрибута User-password. | Обязательный |
Структура ответа внешнему порталу от WLC
Данные передаются в теле HTTP-ответа в формате xml.
Пример HTTP-ответа от WLC:
<?xml version="1.0"?><response><client-mac>7a:c5:b8:80:07:eb</client-mac><ip-address>10.25.229.12</ip-address><result>success</result><errcode>0</errcode></response> |
| Параметр | Описание | Обязательный или необязательный |
|---|
| client-mac | MAC-адрес клиента в формате: | Необязательный |
| ip-address | IP-адрес клиента в формате: | Обязательный |
| result | Результат авторизации клиента по параметрам из запроса HTTP POST: | Обязательный |
| errcode | Код ошибки: | Обязательный |
Пошаговая настройка
Настройка external-portal-manager
Для того, чтобы WLC начал обрабатывать входящие HTTP-запросы от внешнего портала, необходимо:
- Включить external-portal-manager с помощью настройки enable.
- Задать параметр ip-address, который будет использоваться для приема входящих HTTP-запросов. Если используется схема failover, необходимо использовать VRRP-адрес для обеспечения отказоустойчивости.
Опционально можно настроить:
- Параметр login-url, который задает значение у параметра <LOGIN_URL> в произвольной строке редиректа: redirect-url-custom. Это необходимо, чтобы передать внешнему порталу dns имя контроллера вместо ip-adress+port (по умолчанию).
- Параметр port, который будет использоваться для приема входящих HTTP-запросов. По умолчанию используется порт: 8045.
- Параметр radius-response-timeout, который задает время ожидания авторизации клиента на RADIUS-сервере.
external-portal-agent
enable
ip-address 100.139.31.1
exit |
Настройка portal-profile
Настраиваем portal-profile.
В строке ридеректа (redirect-url-custom) должны быть заданы обязательные параметры:
<ORIGINAL_URL>
<CLIENT_IP>
<CLIENT_MAC>
<LOGIN_URL>
Тип проверки: external-portal
portal-profile eltex-external-portal
redirect-url-custom http://eltex-co.ru/?redirect-url=<ORIGINAL_URL>&user-ip=<CLIENT_IP>&user-mac=<CLIENT_MAC>&login-url=<LOGIN_URL>
verification-mode external-portal
exit |
Настройка radius-profile
Необходимо создать и настроить radius-profile, чтобы задать на ТД адрес RADIUS-сервер, который будет выполнять авторизацию беспроводного клиента.
В целевой схеме указывается адрес WLC, который проксирует запрос на RADIUS-сервер. Подробнее в статье Настройка проксирования на внешний RADIUS.
При необходимости можно задать адрес RADIUS-сервера для взаимодействия ТД с внешним сервером, минуя WLC.
radius-profile default-radius
description "default-radius"
auth-address 100.139.31.1
auth-password ascii-text encrypted 8CB5107EA7005AFF
domain default
exit |
Настройка ssid-profile
Необходимо создать ssid-profile, включить в нём портальную авторизацию и привязать portal-profile и radius-profile на предыдущих шагах, затем привязать его к необходимой локации либо переопределить в индивидуальном профиле точки доступа.
ssid-profile exter-external-portal
ssid "exltex-portal"
radius-profile default-radius
portal-enable
portal-profile eltex-external-portal
vlan-id 2955
band 5g
enable
exit |