在 FreeRadius 中配置 rlm_rest 模块

在 FreeRadius 中配置 rlm_rest 模块

使用 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替代版本,这在大多数情况下都应该有效。

相关内容