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

如何以编程方式为Azure Data Factory分配用户分配托管标识

为Azure Data Factory编程分配用户分配托管标识的实现方案

给ADF绑定用户分配托管标识(UAMI)的核心逻辑是更新ADF资源本身的identity属性,将目标UAMI的资源ID加入ADF的托管标识关联列表,这步操作完全可以通过自动化方式实现,不需要手动进入控制台操作。以下是几种常用实现方式:

方式1:ARM/Bicep模板部署(推荐,可与后续凭据、链接服务部署流程合并)

如果本身就用ARM模板部署后续的凭据、链接服务,直接把ADF资源的标识配置更新合并到同一模板做增量部署即可,不需要单独拆分步骤。
ARM模板中ADF资源的配置片段如下:

{
  "type": "Microsoft.DataFactory/factories",
  "apiVersion": "2018-06-01",
  "name": "[parameters('adfName')]",
  "location": "[parameters('location')]",
  "identity": {
    "type": "SystemAssigned,UserAssigned",
    "userAssignedIdentities": {
      "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('targetUamiName'))]": {}
    }
  }
  // 其余ADF原有配置保持不变即可
}

注意:如果ADF此前已经开启系统分配托管标识,type字段必须保留SystemAssigned值,否则增量部署时会删除原有系统分配托管标识;如果不需要保留系统标识,直接将type设为UserAssigned即可。
ADF资源更新部署完成后,再顺序部署凭据、Synapse链接服务资源,就不会触发"The referenced user assigned managed identity in the credential is not associated with the factory"报错。

方式2:Azure CLI 脚本实现

轻量脚本场景下直接调用CLI更新命令即可:

# 登录并指定目标订阅
az login
az account set --subscription "<订阅ID>"

# 为现有ADF绑定目标UAMI
az datafactory update \
  --name "<ADF实例名称>" \
  --resource-group "<ADF所在资源组名称>" \
  --assign-identity "/subscriptions/<订阅ID>/resourceGroups/<UAMI所在资源组名称>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UAMI名称>"

如果需要同时保留系统分配托管标识,在命令末尾追加--assign-identity [system]参数即可。

方式3:Azure PowerShell 实现

使用Az模块的ADF更新命令完成绑定:

# 登录并指定目标订阅
Connect-AzAccount
Set-AzContext -SubscriptionId "<订阅ID>"

# 获取目标UAMI资源
$targetUami = Get-AzUserAssignedIdentity -ResourceGroupName "<UAMI所在资源组名称>" -Name "<UAMI名称>"

# 更新ADF标识配置
Update-AzDataFactoryV2 -ResourceGroupName "<ADF所在资源组名称>" -Name "<ADF实例名称>" -IdentityType "SystemAssigned,UserAssigned" -UserAssignedIdentity $targetUami.Id

方式4:REST API 调用实现

自定义代码场景下可直接调用Azure资源管理REST接口完成更新:

  1. 先获取Azure AD访问令牌,令牌权限范围设置为https://management.azure.com/.default
  2. 向ADF资源端点发送PATCH请求:
    PATCH https://management.azure.com/subscriptions/{订阅ID}/resourceGroups/{ADF资源组名}/providers/Microsoft.DataFactory/factories/{ADF实例名}?api-version=2018-06-01
    
  3. 请求体示例:
    {
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/{订阅ID}/resourceGroups/{UAMI资源组名}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{UAMI名称}": {}
        }
      }
    }
    

注意事项

  • 上述任意操作执行完成后,建议等待10-20秒再部署后续的凭据、链接服务资源,避免ADF侧标识配置同步延迟触发报错。
  • 绑定完成后不需要额外做其他ADF侧配置,创建凭据时直接引用已绑定的UAMI资源ID即可正常连接Synapse。

内容的提问来源于stack exchange,提问作者Adam Łepkowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:51:19