AxelNAC поддерживает вызов внешнего HTTP API в качестве источника аутентификации. Использование внешнего API позволяет реализовать как аутентификацию, так авторизацию пользователей.
В результате аутентификации должна быть получена информация о том, является ли комбинация имя пользователя/пароль действительной. Эта информация доступна через поля POST-запроса. В ответ сервер должен предоставить два атрибута в JSON-ответе:
Пример JSON-ответа:
{"result":1, "message": "Valid username and password"}
Авторизация должна обеспечить действия, которые необходимо применить к пользователю на основе его атрибутов. Для ответа доступны следующие атрибуты:
Ниже приведен пример JSON-ответа. Обратите внимание, что не все атрибуты являются необходимыми, отправлять нужно только те, которые требуются:
{"access_duration":"1D","access_level":"ALL","sponsor":1
,"unregdate":"2030—01—01","category":"default"
Пример реализации, совместимой с AxelNAC можно найти в файле /usr/local/pf/addons/example_external_auth.
Для использования внешнего API для аутентификации, выполните следующие действия:
Шаг 1. Перейдите в раздел Конфигурация → Политики и контроль доступа → Источники аутентификации и нажмите Новый внутренний источник, после чего в выпадающем списке выберите HTTP.
Шаг 2. В открывшемся окне конфигурации заполните поля следующим образом: