如何通过Azure CLI正确配置Azure Web App V2版认证设置?
解决Azure Web App认证配置(旧版升级后CLI兼容问题)
问题根源
你遇到的是Azure Web App认证系统新旧版本不兼容的问题:
- 最初用
az webapp auth update配置的是旧版(v1)认证框架,门户提示的“升级”是切换到新版(v2)——后者基于Azure AD应用注册的现代架构,配置结构和v1完全不同。 - 升级到v2后,再运行原v1的CLI命令会触发“降级失败”,因为Azure不允许从v2回退到v1。
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET是v2配置自动生成的应用设置,用于Web App和Azure AD之间的信任凭据,不需要手动配置或修改。
可行的配置方法(针对v2认证)
方法1:使用Azure CLI v2专用命令配置
先启用Web App的认证基础设置,再添加Azure AD身份提供者:
# 1. 启用认证并设置默认动作(按需调整为LoginRequired等) az webapp auth update --name WebAppName --resource-group ResourceGroup \ --enabled true --action AllowAnonymous --token-store true # 2. 添加Azure AD身份提供者(v2架构专用命令) az webapp auth identity-provider add --name WebAppName --resource-group ResourceGroup \ --provider-name AzureActiveDirectory \ --client-id [你的AAD应用客户端ID] \ --allowed-token-audiences 'api://[你的受众值]' \ --issuer-url 'https://sts.windows.net/[你的租户ID]/v2.0'
方法2:通过ARM模板配置(适合自动化部署)
如果需要批量或自动化配置,用ARM模板的identityProviders节点定义v2认证:
{ "type": "Microsoft.Web/sites/config", "apiVersion": "2023-01-01", "name": "[concat(parameters('webAppName'), '/authsettingsV2')]", "properties": { "enabled": true, "defaultAuthorizationPolicy": { "allowedPrincipals": { "identities": ["anonymous"] } }, "tokenStore": { "enabled": true }, "identityProviders": { "azureActiveDirectory": { "registration": { "clientId": "[parameters('aadClientId')]", "clientSecretSettingName": "MICROSOFT_PROVIDER_AUTHENTICATION_SECRET" }, "validation": { "allowedAudiences": ["api://[你的受众值]"], "issuer": "https://sts.windows.net/[你的租户ID]/v2.0" } } } } }
验证配置
配置完成后,用原命令查看结果,注意v2返回的JSON结构核心配置在identityProviders节点下:
az webapp auth show --name WebAppName --resource-group ResourceGroup | ConvertFrom-Json
注意事项
- 升级到v2后,不要再使用
az webapp auth update的--aad-*系列参数(这些是v1专属),必须用az webapp auth identity-provider add管理身份提供者。 MICROSOFT_PROVIDER_AUTHENTICATION_SECRET由Azure自动维护,手动修改会导致认证失效。- 若必须回退到v1,只能在Azure门户的“认证”页面操作,但微软已不再推荐使用v1架构,建议坚持使用v2。
内容的提问来源于stack exchange,提问作者user2794745
相关产品推荐
相关产品推荐

