You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现需MFA验证码的Azure AD身份验证自动化?

针对Azure AD MFA的程序化Authenticator实现方案

你需要的能力完全可以实现,不需要修改现有登录流程。Azure AD的MFA验证采用的是标准TOTP(基于时间的一次性密码)协议,和移动端Authenticator应用的生成逻辑完全一致,你正在使用的otpauth工具包已经可以覆盖注册、测试全流程的需求。

注册环节实现逻辑

你在为测试用户开启Azure AD MFA时,会得到对应的MFA密钥种子,这个密钥是生成验证码的核心凭证:

  • 手动创建测试用户时,可直接在Azure AD后台MFA配置页导出Base32格式的密钥种子,无需扫描二维码
  • 如需自动化批量注册测试用户,可调用Azure AD Graph API完成MFA开通并同步获取密钥种子,拿到密钥后存入测试专用的安全配置项即可

自动化测试实现逻辑

在E2E测试流程走到MFA验证步骤时,直接用你存储的测试用户密钥调用otpauth生成实时验证码即可,示例代码如下:

import * as OTPAuth from "otpauth";

// 初始化对应测试用户的TOTP实例
const testTotp = new OTPAuth.TOTP({
  issuer: "Azure AD",
  label: "测试用户邮箱",
  algorithm: "SHA1",
  digits: 6,
  period: 30,
  // 替换为你存储的对应测试用户的Base32格式MFA密钥
  secret: OTPAuth.Secret.fromBase32("YOUR_TEST_USER_MFA_SECRET"),
});

// 生成当前可用的6位MFA验证码
const currentMfaCode = testTotp.generate();

注意事项

  • 测试用户的MFA密钥必须妥善存储在测试环境专用的加密配置中,禁止硬编码到测试代码,避免泄露安全风险
  • 该方案仅适用于测试环境的专用测试账号,禁止用于生产用户的MFA处理
  • 生成验证码后直接填入对应输入框提交即可,无需额外适配现有Azure AD登录流程

内容的提问来源于stack exchange,提问作者Ivan Koshelev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:45:08