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

Terraform创建Azure AD应用时无法将Client ID和密码存入Key Vault报错求助

问题背景

使用Terraform创建AzureAD应用,尝试将应用Client ID和密码作为机密传入Key Vault时,触发两类报错:

  • no resource declared in main.tf
  • No applications found matching filter: "displayName eq,报错触发时AzureAD应用尚未完成创建
    排除Key Vault相关逻辑后,AzureAD应用可正常创建。

根因说明

错误1:拼写错误导致资源未识别

代码中多处将azuread_application误写为azureread_application,Terraform无法匹配到已声明的资源,触发资源未声明报错。

错误2:不必要的数据源依赖

无需额外定义data "azuread_application"数据源查询刚创建的应用属性,Terraform可直接引用azuread_application资源的输出属性。新增的数据源会在Terraform计划阶段就发起AzureAD查询,此时应用还未创建,自然触发查询不到的报错。

错误3:密码取值错误

原有配置中AzureADAppPassword机密取值为应用object_id,并不是生成的应用密码。

修复代码

删除冗余的data "azuread_application" "websiteadapp"块,修改Key Vault机密配置如下:

resource "azurerm_key_vault_secret" "AzureADClientID" {
  name         = "AzureADClientID"
  # 直接引用azuread_application资源的client_id属性
  value        = azuread_application.websiteadapp.client_id
  key_vault_id = azurerm_key_vault.Terraform_Testings.id

  depends_on = [
    azurerm_key_vault_access_policy.terraform_testings_client,
    azurerm_key_vault_access_policy.terraform_testings_service_principal,
    # 修正拼写错误
    azuread_application.websiteadapp,
  ]
}

resource "azurerm_key_vault_secret" "AzureADAppPassword" {
  name         = "AzureADAppPassword"
  # 直接引用密码资源的value属性,为生成的真实应用密码
  value        = azuread_application_password.websiteadapp.value
  key_vault_id = azurerm_key_vault.Terraform_Testings.id

  depends_on = [
    azurerm_key_vault_access_policy.terraform_testings_client,
    azurerm_key_vault_access_policy.terraform_testings_service_principal,
    azuread_application_password.websiteadapp,
  ]
}

# 原有AzureAD应用、密码资源保留即可
resource "azuread_application" "websiteadapp" {
  display_name = var.adapplication_name
  owners           = [data.azurerm_client_config.current.object_id]
  sign_in_audience = "AzureADMultipleOrgs"

  required_resource_access {
    resource_app_id = "00000003-0000-0000-c000-000000000000" # Microsoft Graph固定ID
    resource_access {
      id   = "df021288-bdef-4463-88db-98f22de89214" # User.Read.All权限ID
      type = "Scope"
    }
    resource_access {
      id   = "e1fe6dd8-ba31-4d61-89e7-88639da4683d" # User.Read权限ID
      type = "Scope"
    }
  }
}

resource "azuread_application_password" "websiteadapp" {
  application_object_id = azuread_application.websiteadapp.object_id
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:06:04