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

Azure托管应用部署中,如何在App Service使用Key Vault证书?

解决方案

要在ARM模板中动态获取Microsoft Azure App Service资源提供商服务主体的ObjectId,可通过以下方式实现:

  • 利用ARM模板的tenantResourceId函数构造服务主体的租户级资源ID,结合reference函数查询其ObjectId。该方法会在部署时自动适配当前客户租户的环境,无需硬编码固定值。

修改后的Key Vault资源模板如下:

resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = {
  name: keyVaultName
  location: location
  properties: {
    enabledForDeployment: false
    enabledForDiskEncryption: false
    enabledForTemplateDeployment: true
    enableRbacAuthorization: false
    tenantId: tenantId
    enableSoftDelete: true
    softDeleteRetentionInDays: 90
    sku: keyVaultSku
    networkAcls: {
      defaultAction: 'Allow'
      bypass: 'AzureServices'
    }
    accessPolicies:[
       {
         objectId: keyVaultReferenceIdentity.properties.principalId
         permissions: {
           certificates: [
             'get', 'list', 'getissuers', 'listissuers', 'update', 'create', 'import'
           ]
           keys: [
             'get', 'list', 'decrypt', 'unwrapKey', 'verify', 'getrotationpolicy', 'update', 'create', 'import'
           ]
           secrets: [
             'get', 'list', 'set'
           ]
         }
         tenantId: tenantId
       }
       {
         objectId: reference(tenantResourceId('Microsoft.AAD/servicePrincipals', 'abfa0a7c-a6b6-4736-8310-5855508787cd'), '2022-09-01').id
         permissions:{
           certificates: ['get']
           secrets:['get']
         }
         tenantId: tenantId
       }
     ]
  }
}

resource keyVaultReferenceIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {
  name: keyVaultReferenceIdentityName
  location: location
}

关键说明

  1. tenantResourceId函数:用于生成租户级资源(服务主体)的唯一ID,格式为tenantResourceId('资源类型', '资源标识符'),这里资源类型是Microsoft.AAD/servicePrincipals,资源标识符是已知的App Service RP的applicationId。
  2. reference函数:通过服务主体的资源ID查询其属性,id字段即为所需的ObjectId。需指定对应的API版本(如2022-09-01),确保查询有效。
  3. 权限适配:此方法会在客户租户部署时自动获取对应服务主体的ObjectId,完美适配不同租户的差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:33:10