Azure Data Factory中Xero刷新令牌自动更新方案咨询
Azure Data Factory中Xero连接器OAuth2.0令牌自动刷新配置方案
一、刷新令牌自动更新的核心思路
Xero的OAuth2.0刷新令牌默认30分钟过期,要实现自动更新,核心是借助Azure Key Vault存储凭据,配合Azure Logic Apps定期调用Xero API刷新令牌并更新密钥库中的值,让ADF的Xero链接服务始终能获取有效凭据。
二、详细配置步骤
1. 配置Azure Key Vault
- 若没有Key Vault,先创建一个。然后在Key Vault的访问策略中,给ADF和后续要用的Logic App服务主体添加权限:授予
Get(读取机密)和Set(更新机密)权限。 - 在Key Vault中创建3个机密:
XeroClientID:存储Xero应用的客户端IDXeroClientSecret:存储Xero应用的客户端密钥XeroRefreshToken:存储初始通过OAuth流程获取的刷新令牌
2. 配置ADF的Xero链接服务
- 打开ADF,创建或编辑Xero链接服务,选择OAuth 2.0认证方式。
- 客户端ID、客户端密钥、刷新令牌这三个字段,全部选择从Azure Key Vault中获取,分别对应Key Vault里创建的三个机密。
- 测试连接,确认能正常访问Xero数据。
3. 用Logic Apps实现令牌自动刷新
- 创建一个Logic App,设置定期触发器,执行频率设为25分钟(比30分钟过期时间提前,避免令牌失效)。
- 添加获取机密动作,从Key Vault中取出
XeroClientID、XeroClientSecret、XeroRefreshToken三个值,保存为变量。 - 添加HTTP动作,调用Xero的刷新令牌API:
- 请求方法:
POST - URL:
https://identity.xero.com/connect/token - 请求头:
Content-Type: application/x-www-form-urlencoded - 请求体(用变量填充):
grant_type=refresh_token&client_id=[你的XeroClientID变量]&client_secret=[你的XeroClientSecret变量]&refresh_token=[你的XeroRefreshToken变量]
- 请求方法:
- 添加设置机密动作,将HTTP响应返回的新
refresh_token值,更新到Key Vault的XeroRefreshToken机密中。 - 保存并启用Logic App,从此会自动定期刷新令牌。
4. 验证效果
- 等待Logic App执行1-2次后,查看Key Vault中
XeroRefreshToken的数值是否更新。 - 运行ADF的数据提取管道,确认不会出现令牌过期的报错,连接持续有效。
三、访问令牌的配置说明
Xero的OAuth2.0流程中,访问令牌是由刷新令牌自动获取的——ADF的Xero连接器会在每次发起数据请求前,自动使用Key Vault中存储的有效刷新令牌,调用Xero API获取新的访问令牌,不需要手动配置或维护访问令牌。只要确保刷新令牌能被自动更新,ADF就能持续获取有效的访问令牌完成数据提取。
注意事项
- 确保Xero应用的权限配置正确,允许使用刷新令牌获取新凭据。
- Logic App的执行频率必须短于30分钟,避免出现令牌过期的间隙。
- 定期检查Key Vault的访问策略,确保ADF和Logic App的服务主体权限正常。
内容的提问来源于stack exchange,提问作者Yoshitha P
相关产品推荐
相关产品推荐

