在半径回复中返回自定义用户属性

时间:2019-07-06 22:17:37

标签: freeradius

我正在使用(并享受)Freeradius v3,我一直在反对我确定社区已经意识到的事情。

我在字典中定义了一个自定义用户属性,并将其包含在我的授权文件中:

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

...并且我能够通过将以下内容添加到默认站点(/etc/freeradius/3.0/sites-available/default)来更新来自radius服务器的回复

    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"

我应该包括什么变量,命令行开关或其他变量才能在“其他信息”部分中获取“我的群组”信息?

我不是要沸腾海洋,我知道freeradius有一些相当复杂的组/寻线组/权限配置,但我所需要的只是Reply-Message中的数据。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您查看关于question的用户文件的工作方式,您将在用户文件条目的第一行看到带有该运算符的属性被插入到控件列表中。 / p>

如果要在其他地方访问该属性,则需要添加列表限定符,即control:Mygroup

要在字符串中插入值时,需要使用字符串插值语法(在FreeRADIUS文档中称为xlat或字符串扩展)。对于简单的属性扩展,只需将属性名称及其限定符包装在%{}中。

因此,最终的unlang更新块将类似于:

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