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

如何在Azure App Service的ASP.NET Core应用中透明读取Key Vault机密作为配置

实现C#透明读取Azure Key Vault机密作为配置

步骤1:安装必要NuGet包

在项目中安装以下包,用于集成Azure Key Vault和配置系统:

Install-Package Azure.Extensions.AspNetCore.Configuration.Secrets
Install-Package Azure.Identity

步骤2:修改Program.cs配置构建逻辑

在配置构建阶段添加Azure Key Vault作为配置源,这样配置系统会自动将Key Vault中的机密与本地配置合并,原有builder.Configuration.GetSection("AzureAd")代码无需任何修改。

代码示例:

var builder = WebApplication.CreateBuilder(args);

// 引入Azure Key Vault配置源
builder.Configuration.AddAzureKeyVault(
    new Uri($"https://{builder.Configuration["KeyVaultName"]}.vault.azure.net/"),
    new DefaultAzureCredential()
);

// 原有服务注册逻辑保持不变
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));

// ...其他服务注册及中间件配置代码

var app = builder.Build();

// ...后续应用启动逻辑

步骤3:Key Vault机密命名规则

要让配置系统自动映射到AzureAd配置节的子项,Key Vault中的机密名称需遵循分层命名格式:用双短横线--替代配置路径中的冒号::

  • 对应AzureAd:TenantId的机密名称:AzureAd--TenantId
  • 对应AzureAd:ClientId的机密名称:AzureAd--ClientId
  • 对应AzureAd:ClientSecret的机密名称:AzureAd--ClientSecret

配置系统会自动识别这种命名,将机密值注入到AzureAd配置节的对应属性中,实现完全透明的读取。

步骤4:开发环境兼容(可选)

开发环境中你原有的Connected Services/Secrets配置方式可以保留,配置系统默认会优先使用本地配置(appsettings.json、用户机密),若本地无对应值才会从Key Vault读取。如果需要在开发环境测试Key Vault读取,只需确保你的开发身份(如Visual Studio、Azure CLI登录账号)拥有Key Vault的访问权限,DefaultAzureCredential会自动适配开发环境身份。

内容的提问来源于stack exchange,提问作者g.pickardou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:43:21