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

如何实现TM1服务器调用Xero API的OAuth2流程自动化并去除MFA验证

解决TM1/Planning Analytics对接Xero时OAuth2 MFA自动化问题

针对你内部解决方案的需求,以下是几种可行的方案,核心是绕开需要手机验证的MFA流程:

1. 改用Xero私有应用(Private App)——最推荐的内部场景方案

Xero的私有应用专门针对内部使用,无需上架应用商店,直接绑定你的公司组织,采用OAuth1.0a RSA密钥认证,完全不需要用户交互(包括MFA)。

具体步骤:

  • 登录Xero开发者门户,创建新应用时选择「Private」类型
  • 关联你的目标公司组织(私有应用仅能绑定一个组织)
  • 生成RSA密钥对:用OpenSSL生成公钥和私钥,将公钥上传至Xero应用设置页,私钥安全存储在TM1服务器的受限访问目录中
  • 在TM1的TurboIntegrator(TI)脚本中实现OAuth1.0a的签名逻辑,直接调用Xero API

TI脚本核心示例(伪代码):

# 配置基础参数
api_url = "https://api.xero.com/api.xro/2.0/Accounts"
consumer_key = "你的私有应用Consumer Key"
private_key_path = "C:\\TM1\\Secure\\xero_private_key.pem"

# 读取私钥
private_key = ReadFile(private_key_path)

# 生成OAuth1签名所需的临时参数
oauth_timestamp = NumberToString(SecondsSince(1970, 1, 1, 0, 0, 0));
oauth_nonce = GenerateRandomString(16);

# 构建签名基础字符串并签名(需实现RSA-SHA1签名逻辑,可借助第三方库或自定义函数)
signature_base_string = "GET&" + URLEncode(api_url) + "&" + URLEncode("oauth_consumer_key=" + consumer_key + "&oauth_nonce=" + oauth_nonce + "&oauth_signature_method=RSA-SHA1&oauth_timestamp=" + oauth_timestamp + "&oauth_version=1.0")
oauth_signature = RSASHA1Sign(signature_base_string, private_key)

# 构建请求头
auth_header = "Authorization: OAuth oauth_consumer_key=\"" + consumer_key + "\", oauth_nonce=\"" + oauth_nonce + "\", oauth_signature=\"" + URLEncode(oauth_signature) + "\", oauth_signature_method=\"RSA-SHA1\", oauth_timestamp=\"" + oauth_timestamp + "\", oauth_version=\"1.0\""

# 发送API请求
response = ExecuteRESTRequest("GET", api_url, auth_header, "")

# 解析并处理返回数据
ProcessXeroResponse(response)

2. OAuth2场景下的MFA规避方案(仅适合特殊需求)

如果必须坚持使用OAuth2协议,可尝试以下方式:

  • 信任设备设置:首次手动授权时勾选「信任此设备」,后续刷新Token时Xero会跳过MFA验证。但需注意TM1服务器的HTTP请求需要保存并携带授权后的Cookie,TI脚本默认不支持持久化Cookie,需要手动实现Cookie的存储与复用,稳定性不如私有应用。
  • 申请服务账号权限:联系Xero支持申请服务账号(Service Account),这类账号可用于无人值守的OAuth2认证,无需MFA,但需要Xero官方审核,适合多组织或复杂场景。

注意事项

  • 私有应用的密钥需严格保密,TM1服务器上要设置文件权限,仅允许TM1服务账户访问私钥文件
  • 定期轮换RSA密钥对,避免密钥泄露风险
  • 遵守Xero API的速率限制,避免频繁调用导致限流

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:50:17