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

如何用Terraform在Azure客户端应用中创建密钥并解决字段弃用问题

解决AzureAD应用密钥创建的弃用问题及APIM授权服务器集成

修正Terraform创建应用密钥的代码

在azuread provider 2.42.0版本中,azuread_application_password资源的application_object_id字段已被弃用,替代参数为application_id,且该参数需要传入应用的Object ID(而非客户端ID)。你之前的代码错误地将客户端ID赋值给了原字段,现在修正为:

resource "azuread_application_password" "example" {
  application_id = data.azuread_application.example.object_id
}

这段代码会为你在Azure门户注册的应用创建新的客户端密钥,密钥值可通过azuread_application_password.example.value直接引用,你当前APIM授权服务器配置中的client_secret引用逻辑是正确的。

直接使用门户中已创建的密钥

如果不想通过Terraform生成新密钥,而是复用Azure门户中已存在的客户端密钥,可以通过data.azuread_application_password数据源读取:

data "azuread_application_password" "existing_key" {
  application_id = data.azuread_application.example.object_id
  key_id         = "YOUR_EXISTING_KEY_ID" # 从Azure门户的应用密钥列表中获取对应密钥的ID
}

然后在APIM授权服务器中替换为该数据源的密钥值:

client_secret = data.azuread_application_password.existing_key.value

APIM授权服务器的配置验证

你当前的azurerm_api_management_authorization_server配置中:

  • client_id使用data.azuread_application.example.application_id是正确的(这是应用的客户端ID)
  • client_secret无论是引用Terraform创建的密钥还是门户已有的密钥,都能正常用于OAuth2授权流程,无需额外调整,只要确保密钥处于有效状态即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:17:28