Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
abills:docs:nas:unifi:ru [2015/10/10 14:14] anton создано |
abills:docs:nas:unifi:ru [2016/10/24 15:13] (текущий) asmodeus [Добавляем сервер доступа в ABIllS] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Uni-Fi ===== | ===== Uni-Fi ===== | ||
- | Uni-Fi авторизация проходит через скрипт ''guest/s/default/index.cgi'' | + | [[abills:docs:nas:unifi:installation:ru | Установка Uni-Fi контроллера]] \\ |
- | В настройках Uni-Fi тип авторизации: External portal. | + | [[abills:docs:nas:unifi:init:ru | Подключение скрипта авторизации ]] \\ |
- | В скрипте index.cgi есть 3 основные функции: | + | Uni-Fi авторизация проходит через скрипт ''сgi-bin/guest/s/default/index.cgi''\\ |
- | * unifiLogin | + | В настройках Uni-Fi выставить тип авторизации: External guest portal, и прописать адрес билинга. |
- | * sendJson | + | |
- | * unifiLogout | + | |
- | Авторизация клиента проходит в 3 стадии: | + | |
- | - Неавторизированый клиент перенаправляется на ''guest/s/default/index.cgi'', с GET параметрами, которые обрабатываются скриптом. | + | |
- | - Скрипт обрабатывает параметры, проверяет статус клиента | + | |
- | - Если пользователю можно ходить в интернет, скрипт авторизируется на Uni-Fi контроллере, отправляет команду для авторизации пользователя, и выходит. | + | |
- | - Пользователя перенаправляет на URL, на который он хотел попасть. | + | |
+ | В скрипте index.cgi есть 3 основные функции:\\ | ||
+ | * unifiLogin() - Вход в API | ||
+ | * getJson() - Получение данных из контролера | ||
+ | * sendJson() - Отправка команды | ||
+ | * unifiLogout() - Выход из API | ||
+ | Авторизация клиента проходит в 3 стадии:\\ | ||
+ | - Неавторизированый клиент перенаправляется на ''guest/s/default/index.cgi'', с GET параметрами, которые обрабатываются скриптом.\\ | ||
+ | - С страницы пользователя отправляется запрос на Uni-Fi контроллер для получения статуса клиента.\\ В зависимости от статуса, пользователю показывается форма логина или статус. \\ Если MAC адреса клиента нет в списке, полученном от контролера, выводится надпись "You have to be redirected via hotspot". | ||
+ | - При получении скриптом формы авторизации, отсылается запрос в билинг. | ||
+ | - Если пользователю можно ходить в интернет, скрипт отправляет на Uni-Fi команду для авторизации пользователя. | ||
+ | - Пользователю показывает данные статистики и ссылку на URL, куда он хотел попасть и кнопку "Отключить". | ||
+ | |||
+ | \\ | ||
+ | Если уже авторизованный пользователь заходит на ту же страницу, ему показывает данные статуса и кнопку "Отключить" | ||
| | ||
+ | | ||
+ | ==== Подробное описание ==== | ||
+ | | ||
+ | В билинге есть сервер доступа Unifi. Там и в config.pl прописаны параметры соединения с сервером.\\ | ||
+ | \\ | ||
+ | Поскольку сам Unifi ничего на билинг не отправляет, billd опрашивает unifi каждые 5 минут (плагин ubiquiti_online.pm, период можно поменять в настройках плагинов billd)\\ | ||
+ | \\ | ||
+ | клиент подключается к точке. Через некоторое время (от 2 секунд) клиент появится в списке клиентов на контроллере. Когда клиент заходит в интернет (или когда ОС проверит наличие интернета), его отредиректит на портал указанный в настройках Unifi.\\ | ||
+ | \\ | ||
+ | ==== Авторизация ==== | ||
+ | |||
+ | Тут вступает ''index.cgi'' портала. По маку, который пришёл в запросе, он в списке клиентов на контроллере находит нужного и сверяет статус клиента.\\ | ||
+ | \\ | ||
+ | Дальше, в зависимости от статуса: | ||
+ | * неавторизован - показывает форму логина | ||
+ | * авторизован - показывает форму статуса (там где сначала колёсико крутится) | ||
+ | * не нашёл MAC - отвечает, что нет такого клиента на контроллере. | ||
+ | |||
+ | Когда пользователь вводит свой логин и пароль. На сервер, скриптом страницы, асинхронно отправляется запрос на авторизацию, формируется внутренний запрос к **Dv**.\\ | ||
+ | в ответе **Dv** при успешной авторизации возвращаются параметры таймаута сесии и скорости.\\ | ||
+ | \\ | ||
+ | С этих параметров, формируется запрос на Unifi для авторизации пользователя на точке.\\ | ||
+ | \\ | ||
+ | Если аторизация успешная, скрипт страницы после отображения сообщения, покажет таблицу статуса и запросит дополнительные даные для отображения клиенту. На этой же странице находится кнопка "Отключить", для самостоятельного завершения сесии клиентом.\\ | ||
+ | \\ | ||
+ | Для удобности, в верхней части страницы - линк на страницу, куда направлялся пользователь.\\ | ||
+ | |||
+ | ==== Аккаунтинг и продолжительность сесии ==== | ||
+ | |||
+ | **Поскольку сам Unifi ничего не отправляет, то обновление даных происходит только, когда выполняется billd**. \\ | ||
+ | \\ | ||
+ | Billd опрашивает Unifi, и по макам клиентов, определяет к какой учетной записи они принадлежат и добавляет время.\\ | ||
+ | \\ | ||
+ | Сама продолжительность сессии подсчитывается только когда сесия закончится, поэтому **billd** не скидывает абонентов.\\ | ||
+ | ** Абонентов скидывает сам Unifi по таймауту сесии.** | ||
+ | При повторной авторизации, биллинг сверит данные из пользовательского онлайна и если времени онлайна больше, чем позволено для тарифного плана, закончит сесию, и отдаст негативный результат аторизации. | ||
+ | ==== Добавляем сервер доступа в ABIllS==== | ||
+ | |||
+ | ''/Настройка/Сервера доступа/'' | ||
+ | |||
+ | ^IP| IP Адрес точки | | ||
+ | ^Тип | Unifi | | ||
+ | ^Alive | Время обновления статистики и подтверждения активности сессии. Рекомендуемое значение 300 | | ||
+ | ^MAC | Мак точки доступа. Если не указать мак система не будет видить к какой точке атворизировался абонент в журнале последних подключений (''/ Отчёт / Интернет / Последнее подключение '') | | ||
+ | ^Radius-Identifier | Unifi Site Name {{:abills:docs:nas:unifi:3neubz3_1_.png?nolin|}}. Берём с веб строки контролера. \\ Если поле не заполнено используется идентификатор **default** | | ||
+ | ^:Управление: | | | ||
+ | ^IP:PORT: | IP адрес и порт для контролера (по умолчанию 8443) | | ||
+ | ^Пользователь: | admin \\ Имя пользователя для контроля | | ||
+ | ^Пароль: | секретный ключ | | ||
+ | |||
+ |