Введение

Начиная с версии ПО 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 



Схема взаимодействия при первом подключении клиента.


Описание схемы взаимодействия при первичном подключении клиента.

  1. Установка соединения клиента с ТД.
  2. ТД выполняет MAB для клиента на RADIUS-сервере.
  3. Проверка наличия УЗ клиента для MAB авторизации в БД.
  4. Т.к клиент подключается впервые, УЗ клиента для MAB отсутствует в БД.
  5. ТД получает Access-Reject от RADIUS-сервера.
  6. Клиент пытается посетить какой либо ресурс, через HTTP GET запрос.
  7. ТД перехватывает запрос клиента, подставляет значения wildcard  параметров из redirect-url-custom и перенаправляет на страницу портала.
  8. Клиент попадает на страницу редиректа, проходит процесс авторизации и отправляет учетные данные на внешний портал.
  9. Внешний портал проверяет и сохраняет учетные данные клиента в БД.
  10. Внешний портал получив учетные данные клиента обрабатывает их и после отправляет HTTP POST запрос к WLC. Куда отправить ответный HTTP запрос, внешний портал узнает из параметра LOGIN_URL, который содержится в redirect-url-custom.
  11. WLC валидирует наличие обязательных параметров в HTTP POST запросе для аутентификации клиента, в случае если все обязательные параметры присутствует, проверяет наличие информации по клиенту и к какой ТД он подключен и затем отправляет запрос на ТД для аутентификации клиента.
  12. ТД отправляет RADIUS запроса Acess-Request подставляя в RADIUS атрибуты User-name и User-Password значения, которые были переданы от внешнего портала в виде параметров username и password в http запросе на шаге №4. После отправки RADIUS-запроса запускается таймаут, который задается через параметр: radius-response-timeout (10 секунд по умолчанию).
  13. RADIUS-сервер проверяет наличие УЗ клиента в БД.
  14. RADIUS-сервер получает результат проверки наличия УЗ клиента в БД. 
  15. RADIUS-сервер отправляет ответ Access-Accept на запрос ТД на шаге #12
  16. ТД отправляет уведомление на WLC, что клиент успешно авторизован. Запись сохраняется в журнале клиентов.
  17. WLC отправляет HTTP RESPONSE на HTTP REQUEST, который был отправлен на шаге #4 от внешнего портала.
  18. Внешний портал сохраняет УЗ клиента для MAB. Каждый раз при подключении к новой ТД либо роуминге, ТД будет выполнять MAB  и т.к УЗ клиента уже будет храниться в БД, клиент будет аутентифицирован без взаимодействия со страницой портала.
  19. ТД перенаправляет клиента на изначально запрошенный ресурс.


Схема повторного подключения клиента к новой ТД либо роуминге.

Описание схемы взаимодействия при повторном подключении клиента, либо роуминге.

  1. Установка соединения клиента с ТД.
  2. ТД выполняет MAB для клиента на RADIUS-сервере.
  3. Проверка наличия УЗ клиента для MAB авторизации в БД.
  4. Т.к клиент подключается повторно к новой ТД, либо совершает роуминг, УЗ клиента для MAB присутствует в БД.
  5. ТД получает Access-Accept от RADIUS-сервера.
  6. Клиент пытается посетить какой либо ресурс, через HTTP GET запрос.
  7. ТД предоставляет доступ клиенту на запрошенный внешний ресурс.

Структура запроса от внешнего портала

Данные передаются в теле 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-адрес клиента в формате:

  • xxx.xxx.xxx.xxx
Обязательный
usernameUsername клиента. Значение данного параметра передаются в 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-адрес клиента в формате:

  • xx:xx:xx:xx:xx
Необязательный
ip-address

IP-адрес клиента в формате:

  • xxx.xxx.xxx.xx
Обязательный
result

Результат авторизации клиента по параметрам из HTTP POST запроса:

  • success 
  • fail 
Обязательный
errcode

Код ошибки:

  • 0: success
  • 1: fail
Обязательный

Пошаговая настройка

Настройка external-portal-manager

Для того, чтобы WLC начал обрабатывать входящие http запросы от внешнего портала, необходимо:

  1. Включить external-portal-manager с помощью настройки enable
  2. Задать параметр ip-address, который будет использоваться для приема входящих http запросов. Если используется схема failover, необходимо использовать vrrp адрес, для обеспечения отказоустойчивости.

Опционально можно настроить:

  1. Параметр login-url, который задает значение у параметра <LOGIN_URL> в произвольной строке редиректа: redirect-url-custom. Это необходимо, чтобы передать внешнему порталу dns имя контроллера, вместо ip-adress+port (по умолчанию)
  2. Параметр port, который будет использоваться для приема входящих http запросов.  По умолчанию используется порт: 8045.
  3. Параметр radius-response-timeout - который задает время ожидания авторизации клиента на RADIUS сервере.
external-portal-agent
  enable
  ip-address 100.139.31.1
exit

Настройка portal-profile

Настраиваем portal-profile.

В строке ридеректа (redirect-url-custom) должны быть заданы обязательные параметры:

Тип проверки: 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-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