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

Azure中实现Web Activity时如何刷新访问令牌?

解决Azure Data Factory Web Activity的MSI令牌刷新问题

错误原因分析

  • 你的Web Activity配置存在两处关键问题:
    1. Headers中的Authorization字段配置错误:手动填入https://login.microsoftonline.com/common/oauth2/authorize会干扰托管身份的自动令牌获取流程。使用用户分配托管身份时,ADF会自动向Azure AD请求并注入访问令牌,完全不需要手动设置Authorization头。
    2. 筛选操作数错误:原配置中filters的operand值为pp1,不符合API要求,应该改为PipelineName才能正确筛选指定名称的流水线运行记录。
  • 另外需要确认:用户分配托管身份必须拥有目标Data Factory的权限(比如Data Factory Contributor角色,或至少Microsoft.DataFactory/factories/queryPipelineRuns/action权限),否则Azure AD会拒绝令牌请求,导致返回null令牌。

修正后的完整配置

{
    "name": "get pp1 runs based on filters",
    "description": "get pp1 runs based on filters.",
    "type": "WebActivity",
    "dependsOn": [
        {
            "activity": "Lookup1",
            "dependencyConditions": [
                "Succeeded"
            ]
        }
    ],
    "policy": {
        "timeout": "0.12:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "url": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/queryPipelineRuns?api-version=2018-06-01",
        "method": "POST",
        "headers": {
            "Content-Type": "application/json"
        },
        "body": {
            "lastUpdatedAfter": "2023-07-23T12:00:36.33Z",
            "lastUpdatedBefore": "2023-07-24T12:01:35Z",
            "filters": [
                {
                    "operand": "PipelineName",
                    "operator": "Equals",
                    "values": [
                        "pipeline1"
                    ]
                }
            ]
        },
        "authentication": {
            "credential": {
                "referenceName": "credential_ref",
                "type": "CredentialReference"
            },
            "type": "UserAssignedManagedIdentity"
        }
    }
}

令牌自动刷新的说明

使用用户分配托管身份时,完全不需要手动实现每小时刷新令牌:

  • ADF会自动托管令牌的生命周期管理,当现有令牌快过期(有效期通常30-60分钟)时,ADF会自动向Azure AD请求新的访问令牌,所有流程都是后台自动完成的,无需额外配置或代码。
  • 只要配置正确,每次Web Activity运行时都会自动获取有效的令牌,不用担心过期问题。

额外验证步骤

  1. 确认用户分配托管身份已关联到你的Data Factory:在Data Factory的“托管身份”设置页面,检查是否已添加该身份。
  2. 验证权限配置:在目标Data Factory的IAM页面,确认该身份已被分配足够的权限(比如Data Factory Contributor角色)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:45:28