如何自动化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
相关产品推荐
相关产品推荐

