如何在 FreeRADIUS 中实现 2 因素身份验证?

问题描述 投票:0回答:1

我已经使用 FreeRADIUS 的 PAP 成功执行了 ID/PW 身份验证测试。

当我收到客户端请求的 ID/PW 和 OTP 时,我想首先使用 PAP 验证 ID/PW。如果初始身份验证成功,我希望使用 OTP 继续进行第二次身份验证,其中涉及通过 REST 与我的个人身份验证服务器进行通信。

我已在其余文件的“post-auth”部分中添加了第二个身份验证 API 的信息,并且我还在默认配置文件的“post-auth”部分中添加了以下代码。

post-auth {

    update control {
            Auth-Type := rest
    }
    rest
    ... 
}

它按预期工作,但在我看来,“post-auth”感觉应该在所有身份验证完成后执行。

我认为我不应该在“post-auth”中执行第二次身份验证,但我还没有找到其他解决方案。

这样做会导致任何问题吗?

如果您有更好的选择,请帮助我。

freeradius
1个回答
0
投票

多年来,我使用 django 作为后端,使用 rlm_rest 来玩 Freeradius。该系统用于处理 mikrotik 热点登录。

我的场景是强制使用集中式登录屏幕。 内部 mikrotik 热点 login.html 将用户重定向到 mylogin。 成功登录 Web 后,我的 djanggo 将在 memcached 中静默创建一条记录,其中包含用户名和随机密码,并将其设置为 5 秒后过期

django 还创建一个对用户的回复,其中包含自动发布到 mikrotik 的预填充 html 表单。

Mikrotik 将使用该用户名对 freeradius 进行身份验证并随机化密码。

反过来,freeradius 会请求我的 django,django 会根据 memcached 中存储的数据进行响应。并设置memcached过期。

默认情况下,mikrotik 热点登录页面是 http .. 未加密,但我的 django 页面是 http 。 所以...如果有人在登录的最后一步进行以太转储,这是没有用的...因为随机密码将不再有效。

© www.soinside.com 2019 - 2024. All rights reserved.