Azure App Service使用应用注册证书替代客户端密钥实现用户认证
用证书替代客户端密钥配置Azure App Service的Microsoft Entra认证
完全可行,以下是具体配置步骤:
1. 确认证书状态
登录Azure门户,进入对应的应用注册,在「证书和密码」页面确认已上传从Key Vault生成的证书,状态为有效,记录证书的指纹(Thumbprint)和应用注册的客户端ID。
2. 配置App Service访问Key Vault
- 进入目标App Service的「身份」页面,启用系统分配的托管身份。
- 打开对应的Key Vault,进入「访问策略」页面,添加新策略:选择App Service的系统托管身份,授予「证书权限」中的「获取」权限,保存策略。
3. 修改App Service认证配置
- 进入App Service的「认证」页面,找到已配置的Microsoft Entra身份提供商,点击「编辑」。
- 在「客户端凭据」区域,选择「证书」选项,填写:
- 客户端ID:应用注册的客户端ID
- 证书指纹:之前记录的证书指纹
- 证书存储位置:选择「Key Vault」,输入Key Vault的名称
- 保存配置。
4. 更新.NET 7应用配置(如需)
如果应用代码中存在硬编码的客户端密钥配置,需调整为证书模式:
- 在
appsettings.json中更新Azure AD配置:
"AzureAd": { "Instance": "https://login.microsoftonline.com/", "Domain": "your-domain.onmicrosoft.com", "TenantId": "your-tenant-id", "ClientId": "your-client-id", "ClientCertificates": [ { "KeyVaultUrl": "https://your-keyvault-name.vault.azure.net/", "CertificateName": "your-certificate-name" } ] }
- 在
Program.cs中确保认证服务正确加载证书:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));
验证配置
重启App Service,尝试登录应用,确认认证流程正常执行,无客户端密钥相关错误。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

