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

如何自动化Message Broker?第三方应用OTP认证自动化方案咨询

针对Edge第三方Message Broker应用的自动化登录及OTP解决方案

一、启动自动化流程的基础步骤

  • 选择适配Edge的浏览器自动化工具:推荐使用Playwright(原生支持Edge,无需额外配置驱动)或Selenium(需搭配EdgeDriver),两者都能完整模拟用户操作Edge浏览器的流程。
  • 初始化自动化会话:
    以Playwright为例,核心代码片段:
    from playwright.sync_api import sync_playwright
    
    with sync_playwright() as p:
        browser = p.chromium.launch(channel="msedge", headless=False)  # 启动Edge浏览器
        page = browser.new_page()
        page.goto("你的Message Broker应用登录地址")
        # 定位账号输入框并输入
        page.fill('input[name="username"]', "你的账号")
        # 定位密码输入框并输入
        page.fill('input[name="password"]', "你的密码")
        # 触发登录按钮点击
        page.click('button[type="submit"]')
        # 等待OTP验证框加载完成
        page.wait_for_selector('input[name="otp"]')
    
  • 注意:需根据应用实际的DOM结构调整元素选择器,避免因页面更新导致定位失败。

二、Microsoft Authenticator OTP自动化方案

方案1:基于TOTP密钥直接生成OTP(低成本推荐)

Microsoft Authenticator的OTP遵循TOTP标准,若能从Authenticator中导出对应账号的TOTP密钥(需手动导出,需符合企业安全规范),可直接通过代码计算实时有效OTP:

  • 安装依赖库:pip install pyotp
  • 生成并填充OTP的代码片段:
    import pyotp
    
    # 替换为从Authenticator导出的TOTP密钥
    totp_secret = "JBSWY3DPEHPK3PXP"
    totp = pyotp.TOTP(totp_secret)
    current_otp = totp.now()  # 获取当前6位有效OTP
    
    # 将OTP输入到页面验证框
    page.fill('input[name="otp"]', current_otp)
    page.click('button[type="verify"]')
    
  • 安全提醒:TOTP密钥属于敏感信息,禁止明文硬编码在代码中,建议通过环境变量或加密配置文件读取。

方案2:自动化移动端Microsoft Authenticator(无法导出密钥时使用)

若无法获取TOTP密钥,可通过Appium自动化手机端的Microsoft Authenticator应用,提取OTP后传递给浏览器自动化脚本:

  • 前置准备:安装Appium Server、对应手机的SDK(如Android SDK),连接测试设备或模拟器。
  • 核心代码片段(Appium + Python):
    from appium import webdriver
    
    desired_caps = {
        "platformName": "Android",
        "deviceName": "emulator-5554",
        "appPackage": "com.microsoft.msa.authenticator",
        "appActivity": "com.microsoft.msa.authenticator.activities.MainActivity"
    }
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    # 定位目标账号的OTP元素(需根据实际UI调整选择器)
    otp_element = driver.find_element_by_id("com.microsoft.msa.authenticator:id/code")
    otp = otp_element.text.strip()
    driver.quit()
    
    # 将提取到的OTP传入浏览器自动化流程
    page.fill('input[name="otp"]', otp)
    page.click('button[type="verify"]')
    

方案3:企业级Azure AD自动化认证(企业部署场景)

若你的Message Broker应用集成了Azure AD,可使用以下方式绕过手动OTP验证:

  • 服务主体认证:在Azure AD中注册应用程序,获取客户端ID、客户端密钥,通过OAuth2.0流程获取访问令牌,直接调用应用API完成认证(需应用支持API级别的身份验证)。
  • 设备代码流:适合无交互的自动化场景,通过设备代码获取授权,无需手动输入OTP,流程需在Azure AD中配置对应权限。

安全注意事项

  • 自动化认证涉及账号、密钥等敏感信息,需确保脚本运行环境的安全性,避免信息泄露。
  • 若为企业内部应用,需提前确认自动化方案符合企业安全政策,避免违反合规要求。

内容的提问来源于stack exchange,提问作者Manisha Saini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:45:33