| Оглавление |
|---|
Введение
Начиная с версии ПО 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 |
Схема взаимодействия при первом подключении клиента
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Описание схемы взаимодействия при первичном подключении клиента.:
- Установка соединения клиента с ТД.
- ТД выполняет MAB для клиента на RADIUS-сервере.
- Проверка наличия УЗ клиента для MAB в БД. Т.к
- Так как клиент подключается впервые, УЗ клиента для MAB отсутствует в БД.
- ТД получает Access-Reject от RADIUS-сервера.
- Клиент пытается посетить какой-либо ресурс, через HTTP GET-запрос.
- ТД перехватывает запрос клиента, подставляет значения wildcard
- 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
- параметрradius-response-timeout (10 секунд по умолчанию).
- RADIUS-сервер проверяет наличие УЗ клиента в БД.
- RADIUS-сервер получает результат проверки наличия УЗ клиента в БД.
- RADIUS-сервер отправляет ответ Access-Accept на запрос ТД на шаге #12
- 12.
- ТД отправляет уведомление на WLC, что клиент успешно авторизован. Запись сохраняется в журнале клиентов.
- WLC отправляет HTTP RESPONSE на HTTP REQUEST, который был отправлен на шаге #4
- 4 от внешнего портала.
- Внешний портал сохраняет УЗ клиента для MAB. Каждый раз при подключении к новой ТД либо роуминге, ТД будет выполнять MAB и т.к
- MAB и, так как УЗ клиента уже будет храниться в БД, клиент будет аутентифицирован без
- без взаимодействия со страницой
- страницей портала.
- ТД перенаправляет клиента на изначально запрошенный ресурс.
Схема
...
взаимодействия повторного подключения клиента
| draw.io Diagram | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
- Установка соединения клиента с ТД.
- ТД выполняет 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-адрес клиента в одном из форматов:
| Обязательный |
| 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 HTTP-запросы от внешнего портала, необходимо:
- Включить external-portal-manager с помощью настройки enable.
- Задать параметр ip-address, который будет использоваться для приема входящих http HTTP-запросов. Если используется схема failover, необходимо использовать vrrp VRRP-адрес , для обеспечения отказоустойчивости.
...
- Параметр login-url, который задает значение у параметра <LOGIN_URL> в произвольной строке редиректа: redirect-url-custom. Это необходимо, чтобы передать внешнему порталу dns имя контроллера , вместо ip-adress+port (по умолчанию).
- Параметр port, который будет использоваться для приема входящих http HTTP-запросов. По умолчанию используется порт: 8045.
- Параметр radius-response-timeout - , который задает время ожидания авторизации клиента на RADIUS-сервере.
| Блок кода |
|---|
external-portal-agent enable ip-address 100.139.31.1 exit |
Настройка portal-profile
Настраиваем portal-profile.
...
<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-сервер, который будет выполнять авторизацию беспроводного клиента.
...
При необходимости можно задать адрес 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 на предыдущих шагах и , затем привязать его к необходимой локации либо переопределить в в индивидуальном профиле точки доступа.
...