Настройка модуля rlm_rest в FreeRadius для учета
Я обновляю FreeRadius 2 до FreeRadius 3 и меняю точку интеграции с sql
в rest
модуль.
На самом деле, у меня есть две точки учета: accounting_start_query
а также accounting_start_query
, которые являются вызовами к процедурам.
Теперь мне нужно настроить accounting
в модуле rlm_rest FreeRadius.
Этот код не упоминает операции запуска / остановки. Должен ли я реализовать оба?
Кто-нибудь может мне помочь?
1 ответ
rlm_rest
разработан как транспорт для AVP, на самом деле он не реализует логику управления сеансом так же, как rlm_sql
,
когда rlm_sql
получает промежуточный результат, который не видел начала, поскольку он автоматически создает запись для этого сеанса.
С rlm_rest
вся эта логика зависит от остального API, который вы вызываете. Все rlm_rest
будет делать сериализацию атрибутов, которые FreeRADIUS получил в Access-request
и отправьте их в конечную точку API.
Вам решать, используете ли вы разные конечные точки для запуска / временного / останова пакетов. Если вы хотите, вы можете использовать расширение %{Acct-Status-Type}
в строке URL, чтобы получить тип пакета.
На высоком уровне учет RADIUS не совсем соответствует RESTfull design. Вы не знаете, нужно ли вам PUT
или же POST
запросы, потому что вы не знаете, создаете ли вы объект или обновляете уже существующий.
Самый надежный дизайн - это тот, который использует одну конечную точку с %{Acct-Unique-Session-ID}
в качестве идентификатора объекта, принят PUT
или же POST
методы взаимозаменяемы, и сделали REST-эквивалент "upserts", игнорируя запросы, где Event-Timestamp
старше, чем последний полученный Event-Timestamp
,