获取验证码
ESXi主机对接RADIUS实现2FA双因素认证后,运维脚本、监控系统、PowerCLI、自动化平台使用账号密码调用ESXi API时持续认证失败。根源在于2FA机制要求交互式输入第二因子验证码,自动化程序无法完成二次校验。普通域账号不再适合自动化场景,需要独立配置不受RADIUS 2FA约束的本地服务账号,依托会话Token执行API请求。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
安全加固需求,所有ESXi启用RADIUS 2FA,运维监控平台通过API采集硬件、虚拟机指标,全部断开无法采集。最初尝试在请求内拼接动态验证码,ESXi原生API不支持在登录接口直接携带TOTP令牌。 1.1 初期无效排查操作
反复调整RADIUS策略、修改防火墙规则、升级ESXi版本,依旧无法通过传统账号密码完成API登录;尝试定时人工登录维持会话,稳定性极差。
1.2 分层定位真实故障根因
RADIUS 2FA对所有RADIUS来源账号强制双因素校验,ESXi官方API接口没有提供静态传入二次验证码的参数,自动化程序缺少交互窗口完成验证码输入。RADIUS账号不适合自动化,本地ESXi账号默认不纳入RADIUS 2FA管控,可以用于自动化调用。 现场验证修复:新建ESXi本地服务账号,使用账号获取持久会话Token,监控API全部恢复正常采集。
1、两种账号认证差异
RADIUS域账号:开启2FA后,不论是Web控制台、SSH、API登录,均强制要求第二因子,无法用于自动化脚本; ESXi本地账号(root、自建本地账号):默认不受RADIUS 2FA策略管控,仅使用静态密码认证,适配API调用。
2、API登录机制约束
ESXi HTTPS API会话登录流程设计为交互式流程。仅人机交互页面支持跳转输入动态验证码,REST API /sdk会话登录接口不支持附加TOTP/短信验证码参数。
3、Token使用逻辑
本地服务账号正常登录获取会话cookie/会话Token,在有效期内持续调用各类API,无需重复认证。合理配置会话超时时间保障自动化稳定运行。
1、人机运维账号
使用RADIUS账号,强制启用2FA,保障控制台、vCenter交互式登录安全。
2、自动化、监控、备份程序账号
独立创建ESXi本地服务账号,分配最小必要权限,专门提供给API、脚本调用,规避2FA阻断问题。
3、权限安全管控要求
服务账号遵循最小权限原则,不直接使用root账号对外提供自动化调用;定期轮换本地账号密码,收紧ESXi本地账号SSH登录权限。
| 故障现象 | 根因分析 | 标准解决方案 |
|---|---|---|
| Web登录ESXi需要验证码,API使用相同账号直接认证失败 | RADIUS账号强制2FA,API不支持传入动态令牌 | 更换ESXi本地服务账号执行API调用 |
| 本地账号调用API正常,一段时间后连接自动失效 | ESXi默认会话存在超时回收策略,Token过期 | 脚本增加自动重登录逻辑,定时刷新API会话 |
| 安全策略要求禁止使用root做自动化账号 | root权限过高,存在安全风险 | 新建自定义本地账号,分配对应角色权限 |
| 部分ESXi主机本地账号也触发2FA验证 | RADIUS策略错误配置为强制所有账号启用双因素认证 | 调整RADIUS筛选策略,排除本地账号 |
| PowerCLI脚本间歇性报错无法建立会话 | 网络波动导致会话中断,未设计重连机制 | 脚本增加异常捕获,自动重新获取登录Token |
1. 误区:可以在API请求参数携带动态TOTP绕过2FA纠正:ESXi原生接口不支持该方式,不存在参数可以附加二次验证码。
2. 误区:所有账号统一接入RADIUS,本地账号全部禁用纠正:全盘禁用本地账号后,不存在可用账号支撑自动化API运维。
3. 误区:长期维持一个Token永久使用纠正:ESXi具备会话自动回收机制,Token存在有效期,必须增加重登录逻辑。
4. 误区:人机账号和自动化账号共用一套身份凭证纠正:身份混用会导致自动化受2FA限制,权限审计难以区分操作来源。
5. 误区使用vCenter中转调用可以规避ESXi主机2FA限制纠正:直连ESXi主机API依旧受本机RADIUS策略约束,中转方案无法绕过主机认证策略。
账号划分规范:严格区分人机运维RADIUS账号、自动化本地服务账号,两套账号体系隔离使用。
权限规范:本地服务账号授予最小权限,关闭不必要SSH登录能力,仅开放API访问权限。
脚本规范:所有自动化脚本内置会话过期检测,自动重新登录刷新API会话Token。
审计规范:持续审计本地账号登录日志,监控异常时间、异常IP访问行为。
变更规范:RADIUS 2FA策略变更前,提前验证监控、备份自动化API连通性,避免业务中断。