Платформа Wimark ONE позволяет интегрироваться со сторонними порталами. Схема несколько отличается от стандартного RADIUS-based auth.
Для этого реализован HTTP/HTTPS Redirect на уровне Точек доступа (работает с типами установки на L2 (режим моста) и L3 (режим NAT)), а также CoA HTTP API на стороне платформы.
В отдельных случаях может быть выключен Masquerading при HTTP Redirect, добавлен external RADIUS MAC Bypass (с проверкой по MAC адресу на стороннем сервере RADIUS).
В настоящее время реализовано только управление временем авторизации пользователя (Session-Timeout).
Схема работы
При подключении пользователь подключается и получает DHCP адрес
На платформу уходит внутреннее сообщение о подключении - в ответ на него прилетает одно из двух состояний
Пропустить пользователя в сеть Интернет (whitelist)
Не пропускать пользователя (blacklist) и перенаправлять на портал авторизации (redirect)
На точке доступа редирект работает через схему DNAT правила и HTTP сервера, HTTP сервер определяет с какого MAC, IP, WLAN пользователь подключился и делает HTTP 307 Redirect на новый URL
Например, URL может быть таким:
<<https://auth.domain.com/some_portal/?mac={CLIENT_MAC}&wlan={WLAN_SSID}&client_ip={CLIENT_IP}&cpe_id={AP_UUID}&wlan_id={WLAN_UUID}&switch_url=https://10.241.81.76:1324/api/authorize&redirect_url=http://home.domain.com>>
b. Все переменные в {VAR} будут разыменованы точкой исходя из текущих настроек. Также можно дополнить URL по своему усмотрению любыми параметрами.
Пользователь проходит на портал, проходит все этапы идентификации и авторизации и далее на указанный в настройках switch\_url (switch\_url настраивается администратором платформы) отправляется CoA HTTP запрос (по умолчанию, для CoA HTTP API используется порт 1324 на стороне контроллера. Поэтому для switch_url используйте URL=http://ip:1324/):
POST REQUEST /api/authorize { "mac":"c2:cc:4b:db:a4:dc", # required "wlan_id":"284ef13e-165d-439c-ab80-a17aa77c70e4", # required "session_timeout":1800, "username":"7927818130", "ip":"10.10.10.3", "cpe_id":"143e5d59-f3d0-481a-c89a-080027c1afe6", } POST RESPONSE { "status" : "ok | error" "code": 0 | 1, "description" : "error description if any" }
6. Далее пользователь в течении времени Session Timeout может прозрачно ходить в рамках WLAN без необходимости прохождения авторизации.
7. Можно превентивно послать запрос на деавторизацию пользователя с теми же параметрами, что и при авторизации, но используя API /auth/deauthorize
POST REQUEST /api/deauthorize { "mac":"c2:cc:4b:db:a4:dc", # required "wlan_id":"284ef13e-165d-439c-ab80-a17aa77c70e4" # required }