Skip to content
Charles Shao
Go back

authentik 统一身份认证 · RADIUS:VPN 与网络设备接入

创建于:
v1.0.0
–views

VPN 网关、核心交换机、企业级无线 AP……这些底层网络设备在做身份验证时,几乎清一色只认 RADIUS 协议。在 authentik 统一身份认证 的四种接入方式里,RADIUS 专门负责把这些硬件设备也纳入统一的账号版图。它的核心目标很简单:让员工能用统一的账号连上办公区 Wi-Fi 或远程 VPN,离职时瞬间切断网络访问权限。

本篇我们将拆解 RADIUS 的基础概念和认证时序,聊聊为什么在密码认证时 authentik 只能被迫选择最原始的 PAP,以及在配置共享密钥和来源网段时,如何才能把安全措施真正做到位。内容基于 authentik 2026.8 的官方文档。

TL;DR

Table of contents

Open Table of contents

1. 快速看懂 RADIUS

RADIUS 是网络设备在做身份验证时事实上的标准协议。要搞懂它,只需明确以下几个核心概念:

另外要注意的是:authentik 的 RADIUS 只支持认证(Authentication),不支持计费(Accounting)。 员工什么时候连上的 VPN、用了多少流量、什么时候断开,authentik 这里全都没有,你只能去查 VPN 设备自己的日志。

2. 认证时序与原理

我们以 VPN 登录为例,看看密码是如何流转的:

RADIUS 认证时序:VPN 客户端把密码交给 VPN 网关,网关用 PAP 发送 Access-Request,outpost 在 authentik 执行流程后返回 Access-Accept

就像 LDAP 里的问题一样,密码会先原样交给 VPN 设备,因此员工不能飞书扫码,必须提前在 authentik 里设置好内部专用的密码。

当 Outpost 收到 VPN 设备转发来的请求后,它会在 authentik 内部跑一遍 Bind Flow。那些被禁用、未设密码,或是压根不在当前 RADIUS 应用权限绑定(Binding)范围内的账号,会在这里被直接拒之门外。

3. 为什么密码认证只支持最原始的 PAP?

RADIUS 有很多种传输密码的模式。像 CHAP、MS-CHAPv2 这些看起来高级一点的模式,都要求服务端必须能拿到用户的明文密码或者特定格式的可逆哈希,这样服务端才能算出比对结果。

但是,authentik 出于绝对的安全底线,数据库里只保存不可逆的密码哈希算法(如 Argon2)。因此,当使用密码认证时,authentik 只能被迫支持最古老、最原始的 PAP 模式。

在 PAP 模式下,密码在网络传输时,仅仅是用“共享密钥”做了一层基于 MD5 的简单混淆。这种保护极其脆弱,这也是为什么你在配置时必须遵守以下铁律:

EAP-TLS(证书认证) 是更高阶的玩法:员工设备上安装客户端证书,用证书代替密码完成认证。但这是 authentik 企业版的专属功能,开源版无法使用。此外,这套方案不仅需要企业版 License,还需要企业自建一套完善的 CA 来给设备签发证书。

4. MFA 怎么拼?厂商属性怎么下发?

关于 MFA: 如果在 Bind Flow 里加入了 Authenticator Validation 步骤,MFA 就会生效。员工输入密码时,需要硬核地把动态码拼在密码后面,例如:密码;123456。它同样只支持 TOTP、Duo 和静态恢复码,不支持短信验证。

下发厂商特有属性: 通过 RADIUS Provider 的 Property Mapping,你可以让 authentik 在同意放行(Access-Accept)时,附带下发一些厂商自定义的属性(Vendor-Specific Attributes)。比如,告诉 VPN 网关“这个员工是研发,给他下发研发组的路由和 IP 地址池”。能下发哪些属性完全取决于你的网络设备品牌,具体格式请参考厂商手册(官方文档里提供了一个 Cisco AV-Pair 的示例)。

实战建议:先问一句你的 VPN 支不支持 SAML 或 OIDC。 现代的企业级 VPN(比如部分商业防火墙)其实早就支持了浏览器跳转式的单点登录,员工可以直接扫码,也能用上原生的二次 MFA 验证界面。相比之下,RADIUS 只能手拼动态码的体验确实很糟糕。RADIUS 应该只作为不支持现代协议的老旧 VPN 和底层网络设备的最后兜底方案。

5. 排障指南:那些常见的报错

现象最可能的原因
设备发了请求,但收不到任何响应UDP 1812 网络不通;设备的 IP 不在 Client Networks 允许名单里;或者你前面挂的负载均衡根本没有配置 UDP 监听。
认证一直被拒绝,但 authentik 后台没记录“共享密钥”配置不一致;或者 VPN 设备死活要用 CHAP 或 MS-CHAPv2,请去设备端把认证协议强制改为 PAP。
认证一直被拒绝,authentik 后台有失败记录员工没设内部密码;不在 RADIUS 应用的权限绑定范围内;开启了 MFA 但员工没按 密码;动态码 的格式输入。

6. 生产环境的取舍与防坑经验

已建立的 VPN 连接不会因账号被禁用而自动断开。 authentik 仅仅在 VPN 连接建立的那一瞬间做一次认证。员工离职账号被禁用后,他发起的新连接会被立刻拒绝;但他只要不断开,那条已经连上的 VPN 隧道通常会一直存活。遇到紧急情况,你必须登录到 VPN 设备后台,手动把该用户强行踢下线(完整的离职处理见 架构与接入方式选型)。

VPN 如果完全依赖 authentik,故障时就成了死循环。 如果 authentik 突然宕机,运维在家里连不上 VPN,就进不去内网;进不去内网,就没法去修 authentik。所以,VPN 设备上必须预留一个不走 RADIUS 的本地应急管理员账号,凭据封存在保险箱里,定期演练“破窗接入”。

RADIUS Outpost 需要多副本,且负载均衡必须支持 UDP。 RADIUS 走的是 UDP,但很多传统的七层负载均衡器并不支持转发 UDP 流量。上线前请务必确认 1812 端口的健康检查和 UDP 转发都配置正确;另外,大部分商业网络设备也支持配置主、备两个 RADIUS 服务器地址,建议直接把两个 Outpost 实例的 IP 填进去做冗余。

7. 参考资料


–views
Share this post on:

Next Post
authentik 统一身份认证 · LDAP:虚拟目录、bind 流程与 JumpServer 接入