Terraform部署Azure函数应用时auth_settings_v2为何启用Microsoft(V1)认证?
问题原因及解决方法
你的Terraform配置里auth_settings_v2块的写法有误——在AzureRM Provider 3.x版本中,azurerm_function_app资源的auth_settings_v2是直接作为嵌套块使用的,不需要套在content字段里。错误的写法导致V2认证配置未生效,系统自动 fallback 到了V1版本的Microsoft认证。
正确配置示例
resource "azurerm_function_app" "example" { # 填写函数应用的其他必填配置,比如name、resource_group_name等 auth_settings_v2 { auth_enabled = true require_authentication = true microsoft_v2 { client_id = var.app_registration_client_id client_secret_setting_name = "MICROSOFT_PROVIDER_AUTHENTICATION_SECRET" allowed_audiences = ["api://${var.app_registration_client_id}"] } login {} } app_settings = { "MICROSOFT_PROVIDER_AUTHENTICATION_SECRET" = var.app_registration_client_secret # 其他应用配置项... } }
修正配置后,重新运行terraform apply,Azure门户里的认证类型就会显示为“Microsoft (V2)”。另外要确认你的应用注册客户端密钥有效,允许的受众配置和函数应用里的一致。
内容的提问来源于stack exchange,提问作者quincy783
相关产品推荐
相关产品推荐

