服务器端配置MFA推送通知认证需集成第三方服务(如Duo、Microsoft Entra ID等),完成服务端对接、用户绑定与策略启用,并强制高权限账号使用,同时配置备用验证方式保障可用性。

服务器端配置 MFA 推送通知认证,关键在于引入支持推送能力的第三方服务(如 Duo、Microsoft Entra ID、Authy 或 JumpServer 自带的短信/邮件网关),并完成服务端集成、用户绑定与策略启用。它不是纯离线方式,依赖网络通信向终端设备发送确认请求。
确认服务器是否原生支持推送类 MFA
部分平台(如 JumpServer、Passbolt)本身不直接提供推送通知功能,需对接外部服务:
- JumpServer 支持“短信验证码”和“邮箱验证码”,属于异步推送类 MFA,但需提前配置好短信网关(如阿里云短信、腾讯云短信)或 SMTP 邮件服务;
- Passbolt 原生不支持推送通知,仅支持 TOTP、Duo 和 YubiKey —— 若选 Duo,则由 Duo 提供 App 推送、电话回拨等能力;
- 企业级方案如 Microsoft Entra ID、Okta、Duo Security 可直接作为推送中枢,通过 SDK 或 SAML/OIDC 集成到自建服务器登录流程中。
以 Duo 为例完成服务器端集成
Duo 是最常用于服务器推送 MFA 的成熟服务,支持 iOS/Android App 推送、电话、短信等多种验证方式:
- 在 Duo Admin Panel 创建新应用(类型选 “Unix Application” 或 “Web SDK”);
- 获取 Integration Key、Secret Key 和 API Host,配置到你的服务器身份验证模块(如 PAM 模块 duo_unix、或 Web 登录后端调用 duo_web.py);
- 确保服务器可访问
api-xxxx.duosecurity.com(需开放出站 HTTPS); - 用户首次登录时,会跳转至 Duo 托管页面或触发本地 Duo Mobile App 弹窗,点击“Approve”即完成第二因素验证。
启用推送 MFA 并强制执行
仅集成还不够,需明确策略让系统在登录时触发推送:
- 在认证中间件(如 Nginx + Authelia、OpenResty + Lua 插件、或自研登录服务)中,将 MFA 验证环节设为必经步骤;
- 对高权限账号(如 root、admin、运维组)设置强制 MFA 策略,禁止跳过;
- 在 IAM 或目录服务(如 FreeIPA、LDAP+SSSD)中关闭“允许无 MFA 登录”选项;
- 测试时使用非管理员账号模拟登录,确认是否弹出 Duo 推送或收到邮件/SMS 验证码。
注意事项与常见问题
推送类 MFA 易受网络、设备状态影响,部署时需兼顾可用性与安全性:
- 避免单点依赖:建议至少搭配一种备用方式(如 TOTP),防止推送通道中断时全员锁死;
- 用户绑定必须本人操作:推送设备注册过程需在可信网络下完成,且需二次确认(例如输入初始验证码);
- 日志与审计:记录每次推送发起时间、目标设备、响应结果,便于事后追溯异常行为;
- 时区与有效期:邮件/SMS 验证码通常设为 5–10 分钟有效,推送请求默认超时 60 秒,需在服务端合理设置 timeout 参数。











