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

如何为azurerm_app_service v2配置新版AUTH并解决Terraform更新异常

Azure App Service 新版认证(V2)Terraform配置解决方案

问题根源

你当前使用的azurerm_app_service资源内联的auth_settings块仅对应旧版V1认证配置,手动在Azure门户升级为V2认证后,Terraform状态与云端实际配置不匹配,且旧配置块无法识别V2的结构,因此触发更新冲突。

解决步骤

  • 升级azurerm Provider到3.0及以上版本,该版本开始支持独立的V2认证资源配置
  • 删除azurerm_app_service资源代码中整个auth_settings块,移除旧版V1配置的推送逻辑
  • 新增独立的azurerm_app_service_authentication资源配置V2认证,示例配置如下:
resource "azurerm_app_service_authentication" "as_auth" {
  for_each            = var.appservice
  app_service_id      = azurerm_app_service.as[each.key].id
  enabled             = true

  default_provider    = "AzureActiveDirectory"
  unauthenticated_action = "RedirectToLoginPage"

  active_directory_v2 {
    client_id         = var.as_client_id
    client_secret     = var.as_client_secret
    issuer            = "https://login.microsoftonline.com/XXXXXX/v2.0/"
    allowed_audiences = [
      "https://${lookup(each.value, "appservice_name")}.azurewebsites.net"
    ]
  }

  # 其他V2专属配置(如token存储、cookie规则等)可按需补充
}
  • 对齐已手动升级应用的Terraform状态
    对于已经手动升级完成的应用,无需重新创建配置,直接执行导入命令将云端现有V2配置同步到Terraform状态:
    terraform import azurerm_app_service_authentication.as_auth[<对应应用的for_each键名>] /subscriptions/<你的订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Web/sites/<应用服务名>/config/authsettingsV2
    
  • 验证配置
    执行terraform plan,确认无配置漂移、无需要变更的内容即表示配置对齐成功,后续对App Service的其他更新操作就会恢复正常。

其他未手动升级的应用,直接应用上述配置后执行terraform apply即可自动从V1认证迁移到V2认证,无需手动操作门户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:04