使用 FreeRADIUS 我需要通过 Web 后端对 RADIUS 用户进行身份验证,并一直尝试使用 rlm_rest 模块来执行此操作。请参阅这里。
在我的网站配置中我有类似这样的内容:
authorize {
rest
}
在身份验证部分我尝试了如下操作:
authenticate {
Auth-Type REST {
rest
}
}
或者
authenticate {
rest
}
无论哪种情况我都会收到以下错误:(2) ERROR: No Auth-Type found: rejecting the user via Post-Auth-Type = Reject
在我的 Web 服务器上,我返回了,204 code
因为它似乎应该无需其他流程即可验证用户身份。请参阅这里。授权似乎工作正常,但是一旦到达身份验证部分就会返回该错误。
我需要知道的是“用户”文件条目和可用站点条目的组合,我需要这些条目允许 rlm_rest 模块完成请求的身份验证部分。谢谢,
答案1
Rest 没有设置 Auth-Type,您必须手动执行此操作。
authorize {
rest
if (ok) {
update control {
Auth-Type := rest
}
}
}
authenticate {
rest
}
Auth-Types 是为在 authenticate 中列出的模块自动创建的(您实际上并不需要 Auth-Type 节)。
如果不需要的话,你不需要在授权中调用 rest,像这样的事情也可以正常工作:
authorize {
if (User-Password) {
update control {
Auth-Type := rest
}
}
}
编辑:
注意:在 3.0.4 版本之前,REST 模块用于control:Cleartext-Password
获取用户密码,因此为了使模块正常工作,您需要从以下位置复制值request:User-Password
:
authorize {
if (User-Password) {
update control {
Cleartext-Password := &User-Password
Auth-Type := rest
}
}
}
3.0.4 和更高版本会寻找request:User-Password
替代版本,这在大多数情况下都应该有效。