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

如何在Bicep模板中获取系统分配托管标识的clientId

获取Azure Function系统分配托管标识的ClientID(用于Service Bus身份认证)

解决步骤

系统分配托管标识的ClientID由Azure自动生成,无法在Bicep中提前指定,但可通过资源引用直接获取,无需手动从门户复制。

1. 为Function启用系统分配标识

在Bicep定义Function时,开启系统分配身份:

resource functionApp 'Microsoft.Web/sites@2022-09-01' = {
  name: 'your-function-app-name'
  location: resourceGroup().location
  properties: {
    // 填写Function的其他配置(如runtime、关联存储账户等)
    identity: {
      type: 'SystemAssigned' // 核心:启用系统分配托管标识
    }
  }
}

2. 直接引用系统标识的ClientID

启用系统分配后,Bicep会自动暴露clientId属性,同一模板内直接调用即可:

var systemAssignedClientId = functionApp.identity.clientId

这个值就是你在Azure门户中看到的绿色标记ID。

3. 配置Service Bus的身份授权

将该标识的principalId关联到Service Bus的对应角色,为Function分配发送/接收权限:

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2022-10-01-preview' = {
  name: 'your-servicebus-namespace'
  location: resourceGroup().location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
}

// 分配Azure Service Bus Data Sender角色(角色ID为固定值)
resource sbRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(serviceBusNamespace.id, functionApp.identity.principalId, 'b24988ac-6180-42a0-ab88-20f7382dd24c')
  scope: serviceBusNamespace
  properties: {
    roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')
    principalId: functionApp.identity.principalId
    principalType: 'ServicePrincipal'
  }
}

4. (可选)在Function应用设置中传入ClientID

如果业务需要在应用设置中使用该ClientID,通过Bicep直接注入:

resource functionAppSettings 'Microsoft.Web/sites/config@2022-09-01' = {
  parent: functionApp
  name: 'appsettings'
  properties: {
    // 其他应用设置
    SERVICEBUS_AUTH_CLIENT_ID: functionApp.identity.clientId
  }
}

关于Bicep自动补全看不到属性的问题

系统分配标识的clientId和principalId是部署时生成的运行时属性,模板编写阶段无具体值,因此Bicep自动补全不会显示这些属性。只要你正确定义了SystemAssigned身份类型,即可安全引用这些属性。

部署完成后,前往Function应用的身份→系统分配标签页,绿色标记的ClientID与Bicep中获取的值完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:35:11