возвращение пользовательских атрибутов в ответе радиуса - PullRequest
0 голосов
/ 07 июля 2019

Я использую (и наслаждаюсь) Freeradius v3, и я бьюсь головой о чем-то, я уверен, что сообщество уже выяснило.

У меня есть пользовательский атрибут, определенный в словаре и включенный в мой файл авторизации:

me Mygroup :="usergroup", Cleartext-Password := "password1234"

... и я могу обновить ответ с сервера радиуса, добавив следующее на сайт по умолчанию (/etc/freeradius/3.0/sites-available/default)

    update reply {
            Reply-Message := "additional info"
    }

Запуск простого Radtest из командной строки:

radtest me password1234 192.168.x.x 0 $secret   

... дает мне следующее:

Sent Access-Request Id 204 from 0.0.0.0:38090 to 192.168.2.161:1812 length 77
    User-Name = "me"
    User-Password = "password1234"
    NAS-IP-Address = 192.168.x.x
    NAS-Port = 0
    Message-Authenticator = 0x00
    Cleartext-Password = "password1234"
Received Access-Accept Id 204 from 192.168.x.x:1812 to 0.0.0.0:0 length 53
    Reply-Message = "additional info"

Какую переменную, параметр командной строки или другое мне следует включить, чтобы получить информацию «Mygroup» в разделе «дополнительная информация»?

Я не пытаюсь вскипятить океан, я знаю, что для freeradius существуют довольно сложные конфигурации групп / групп поиска / разрешений, но все, что мне нужно, - это данные в ответном сообщении.

Спасибо!

1 Ответ

0 голосов
/ 07 июля 2019

Если вы посмотрите на этот вопрос о том, как работает файл пользователя, вы увидите, что атрибуты с этим оператором в первой строке записи файла пользователя вставляются в контрольный список..

Если вы хотите получить доступ к этому атрибуту где-то еще, вам нужно добавить спецификатор списка, например control:Mygroup.

Поскольку вы хотите вставить значение в строку, вам нужноиспользуйте синтаксис строковой интерполяции (в документах FreeRADIUS это называется xlat или раскрытия строк).Для простых расширений атрибутов вы просто заключаете имя атрибута и его квалификаторы в %{ и }.

Таким образом, ваш последний блок обновления unlang будет выглядеть примерно так:

update reply {
    Reply-Message := "%{control:Mygroup}"
}
...