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

如何用Bicep创建基于托管标识的Blob Storage API连接?

使用Bicep创建基于托管标识的Blob Storage API连接

问题原因

你遇到的错误是因为**authenticationType参数并非托管标识类型API连接的合法参数**,该参数仅适用于密钥、OAuth等非托管标识的认证场景。托管标识认证是通过为API连接资源配置系统分配的托管标识来实现的,不需要在parameterValues中指定认证类型。

修正后的Bicep代码

以下是正确的Bicep模板,用于创建基于系统分配托管标识的Blob Storage API连接:

// 存储账户名称
param storageAccountName string = 'playtestinga673'
// API连接名称
param connectionName string = 'blobStorageConnection'
// 资源位置
param location string = resourceGroup().location

// 引用已存在的存储账户(用于后续权限分配)
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-01-01' existing = {
  name: storageAccountName
}

// 创建Blob Storage API连接
resource blobStorageConnection 'Microsoft.Web/connections@2016-06-01' = {
  name: connectionName
  location: location
  // 启用系统分配托管标识
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    displayName: connectionName
    api: {
      name: 'azureblob'
      id: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Web/locations/${location}/managedApis/azureblob'
      type: 'Microsoft.Web/locations/managedApis'
    }
    parameterValues: {
      // 仅需指定存储账户名称
      accountName: storageAccountName
    }
    // 必须指定连接运行时URL,格式固定为对应区域的APIM地址
    connectionRuntimeUrl: 'https://${location}.azure-apim.net/apim/azureblob'
  }
}

// 可选:为API连接的托管标识分配存储账户Blob数据权限(按需调整角色)
resource blobStorageRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(storageAccount.id, blobStorageConnection.id, 'ba92f5b4-2d11-453d-a403-e96b0029c9fe')
  scope: storageAccount
  properties: {
    // Blob数据参与者角色ID
    roleDefinitionId: '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe'
    principalId: blobStorageConnection.identity.principalId
    principalType: 'ServicePrincipal'
  }
}

关键说明

  1. 托管标识配置:通过identity: { type: 'SystemAssigned' }为API连接启用系统分配托管标识,这是托管标识认证的核心配置。
  2. 参数简化:parameterValues中仅保留accountName,无需额外指定认证类型参数。
  3. connectionRuntimeUrl:必须指定该属性,确保连接能正确关联到对应区域的Azure托管API服务。
  4. 权限分配:需要为API连接的托管标识分配存储账户的相应权限(示例使用Blob数据参与者角色),否则Logic App调用该连接时会出现权限不足的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:35:23