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

能否通过配置文件调用Key Vault URI获取密钥?求相关实现示例

Azure Key Vault 极简配置集成方案解答

核心结论

是的,你提到的这种仅通过配置+少量启动代码(无需业务层代码)就能从Azure Key Vault(AKV)获取密钥的方式,是.NET生态官方推荐的极简集成方案,确实比手动调用AKV SDK更简便——它把AKV直接接入了.NET的统一配置系统,你可以像读取普通appsettings配置项一样读取密钥,无需编写额外的密钥获取逻辑。

实现原理

这种方案依赖Azure.Extensions.AspNetCore.Configuration.Secrets NuGet包,应用启动时它会自动连接AKV,将密钥加载到.NET配置体系中。身份验证默认使用DefaultAzureCredential,可自动适配本地开发(Azure CLI/VS登录身份)、生产环境(托管标识/服务主体)等场景,安全性有保障。

示例实现步骤

  1. 安装依赖包
    在项目中安装官方NuGet包:
dotnet add package Azure.Extensions.AspNetCore.Configuration.Secrets
  1. 配置AKV地址
    在appsettings.json中添加AKV的URI配置:
{
  "KeyVaultConfig": {
    "VaultUri": "https://你的密钥保管库名称.vault.azure.net/"
  }
}
  1. 启动时接入AKV配置源
    在Program.cs中添加AKV配置加载逻辑(仅需这几行,业务代码无需改动):
var builder = WebApplication.CreateBuilder(args);

// 从配置中读取AKV地址,接入AKV作为配置源
builder.Configuration.AddAzureKeyVault(
    new Uri(builder.Configuration["KeyVaultConfig:VaultUri"]),
    new DefaultAzureCredential());

// 后续直接像读取普通配置一样获取AKV中的密钥
var dbConnectionString = builder.Configuration["DbConnectionString"];
var apiSecret = builder.Configuration["ThirdPartyApiSecret"];

// 其他应用启动逻辑...
var app = builder.Build();
// ...

注意事项

  • 确保应用拥有AKV的密钥读取权限:生产环境推荐使用Azure托管标识,本地开发可通过Azure CLI登录后自动获取权限。
  • AKV中的密钥名称要和你读取的配置项名称完全一致(比如配置中读DbConnectionString,AKV中就要创建同名密钥)。

内容的提问来源于stack exchange,提问作者AskMe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:09