使用Terraform auth_settings_v2配置Web应用Microsoft认证生成V1提供商问题
Azure Web App 微软V2身份提供商配置异常排查(Terraform azurerm 3.95.0)
你使用azurerm 3.95.0版本为azurerm_linux_web_app配置微软认证时,代码中使用了auth_settings_v2和microsoft_v2块,但实际生成了V1身份提供商(对应你提供的认证刀片截图显示的Microsoft (V1)),以下是针对性的解决思路:
1. 移除V1认证遗留配置项
你的app_settings中包含WEBSITE_AUTH_AAD_ALLOWED_TENANTS,这是V1认证的传统配置参数,会强制Web App切换回V1模式。auth_settings_v2已经通过内置参数管理租户范围,因此需要删除该配置:
app_settings = { "MICROSOFT_PROVIDER_AUTHENTICATION_SECRET" = azuread_application_password.api_client_secret.value }
2. 显式配置V2租户ID
在microsoft_v2块中添加tenant_id参数,明确指定租户信息,替代原V1配置的作用:
microsoft_v2 { client_id = azuread_application.api_registration.client_id client_secret_setting_name = "MICROSOFT_PROVIDER_AUTHENTICATION_SECRET" tenant_id = data.azurerm_client_config.current.tenant_id }
3. 确保Azure AD应用注册适配V2端点
检查azuread_application资源的配置:
- 当前
sign_in_audience = "AzureADMyOrg"符合单租户V2场景要求,无需修改; - 若不需要隐式授权流,可考虑移除
web.implicit_grant配置(V2优先推荐授权码流),避免配置混淆。
4. 重置Terraform状态并重新部署
如果之前的部署残留了旧的认证状态,先清理状态再重新部署:
terraform state rm azurerm_linux_web_app.this terraform init terraform plan terraform apply
5. 版本兼容性验证
azurerm 3.95.0已稳定支持auth_settings_v2的microsoft_v2块,若以上步骤无效,可尝试升级至最新azurerm版本,排除版本bug影响。
内容的提问来源于stack exchange,提问作者pklaassen
相关产品推荐
相关产品推荐

