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

如何通过编程方式将Azure Data Factory现有链接服务从服务主体转为托管标识

将ADF AzureBlobFS链接服务从服务主体转为托管标识(编程/REST/脚本方法)

前置准备

  • 确认目标数据工厂已启用系统托管标识(默认创建时自动启用,可在ADF门户的"托管标识"页面查看)
  • 为ADF的系统托管标识分配目标存储账户的权限(如Storage Blob Data Contributor),确保MSI有权访问存储资源

方法1:REST API 更新

请求详情

  • 请求方法:PUT
  • 请求URL:
    https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/linkedservices/{linkedServiceName}?api-version=2018-06-01
    
  • 请求头:需携带Azure AD访问令牌(可通过az account get-access-token命令获取),格式为Authorization: Bearer {access-token}
  • 请求体:移除原服务主体相关字段,添加authenticationType: "MSI",示例如下:
    {
      "name" : "ls_stg_storage_dem001",
      "type" : "Microsoft.DataFactory/factories/linkedservices",
      "properties" : {
        "type" : "AzureBlobFS",
        "typeProperties" : {
          "url" : "https://testdus001.dfs.core.windows.net",
          "authenticationType": "MSI"
        }
      }
    }
    

方法2:PowerShell 脚本更新

先确保已安装Az.DataFactory模块(未安装可执行Install-Module -Name Az.DataFactory -Force),执行以下脚本:

# 配置参数
$subscriptionId = "你的订阅ID"
$resourceGroupName = "资源组名称"
$dataFactoryName = "数据工厂名称"
$linkedServiceName = "ls_stg_storage_dem001"

# 登录Azure(若未登录)
Connect-AzAccount -Subscription $subscriptionId

# 构建链接服务配置
$linkedServiceDef = @{
    Type = "AzureBlobFS"
    TypeProperties = @{
        Url = "https://testdus001.dfs.core.windows.net"
        AuthenticationType = "MSI"
    }
}

# 更新链接服务
Set-AzDataFactoryV2LinkedService -ResourceGroupName $resourceGroupName `
    -DataFactoryName $dataFactoryName `
    -Name $linkedServiceName `
    -Definition $linkedServiceDef

方法3:Azure CLI 脚本更新

执行以下步骤:

  1. 准备更新用的JSON配置文件(命名为ls_update.json):
    {
      "type": "AzureBlobFS",
      "typeProperties": {
        "url": "https://testdus001.dfs.core.windows.net",
        "authenticationType": "MSI"
      }
    }
    
  2. 运行CLI命令更新:
    # 配置参数
    SUBSCRIPTION_ID="你的订阅ID"
    RESOURCE_GROUP="资源组名称"
    FACTORY_NAME="数据工厂名称"
    LINKED_SERVICE_NAME="ls_stg_storage_dem001"
    
    # 切换到目标订阅
    az account set --subscription $SUBSCRIPTION_ID
    
    # 执行更新
    az datafactory linked-service create-or-update \
      --resource-group $RESOURCE_GROUP \
      --factory-name $FACTORY_NAME \
      --linked-service-name $LINKED_SERVICE_NAME \
      --properties @ls_update.json
    

注意事项

  • 原链接服务中的servicePrincipalId、servicePrincipalCredentialType、tenant、encryptedCredential字段需全部移除,MSI认证无需这些配置
  • 操作前建议备份原链接服务配置,避免配置丢失
  • 更新完成后,可在ADF门户测试链接服务连通性,验证权限是否配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:17:40