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

.NET Core控制台应用如何将appsettings.json密钥存储到Azure Key Vault

.NET Core控制台应用接入Azure Key Vault实现密钥安全存储方案

1. 前置操作(必须先完成)

  • 第一步创建Azure Key Vault资源:在Azure Portal中搜索「密钥保管库」,按指引创建即可,定价层选标准层满足绝大多数场景需求
  • 将敏感配置存入Key Vault:进入刚创建的密钥保管库,在「密钥」-「生成/导入」中依次添加你提到的5项配置:BlobConnectionString、KustoConnectionString、ClientId、ClientSecret、ApplicationInsightsInstrumentationKey,注意密钥名称只能包含字母、数字和短横线,命名尽量和原来appsettings中的键名保持一致,减少后续代码改动
  • 配置访问权限:在Key Vault的「访问策略」中,为你后续要访问Key Vault的身份授予「密钥获取」权限:
    • 本地开发阶段:给你自己的Azure工作账号授权
    • 线上部署阶段:给控制台部署所在的Azure资源(如VM、容器实例、App Service等)的托管身份授权

2. 项目改动说明

  • 首先安装所需NuGet包:
Azure.Identity
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration.AzureKeyVault
  • 原有appsettings.json处理:直接删除上述5个敏感配置的键值对,仅保留非敏感的业务配置即可,不需要留空值或占位符,避免敏感信息误提交到代码仓库

3. 代码实现示例(.NET 6+ 顶级语句写法,兼容最新.NET版本)

using Azure.Identity;
using Microsoft.Extensions.Configuration;

// 构建配置源,顺序为:先读appsettings.json,再读Azure Key Vault,Key Vault中的同键名配置会覆盖本地配置
var configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    // 接入Azure Key Vault
    .AddAzureKeyVault(
        new Uri("https://<你的Key Vault名称>.vault.azure.cn/"), // 国内Azure后缀是vault.azure.cn,国际版是vault.azure.net
        new DefaultAzureCredential()
    )
    .Build();

// 读取配置的方式和之前完全一致,不需要改动后续业务代码
var blobConnStr = configuration["BlobConnectionString"];
var kustoConnStr = configuration["KustoConnectionString"];
var clientId = configuration["ClientId"];
var clientSecret = configuration["ClientSecret"];
var aiKey = configuration["ApplicationInsightsInstrumentationKey"];

// 原有业务逻辑不变,继续执行拉取数据、Kusto查询、上传Azure的逻辑即可

4. 补充说明

  • DefaultAzureCredential会自动按优先级读取可用身份:本地开发时自动读取VS/VS Code/Azure CLI中登录的Azure账号身份,线上部署时自动读取托管身份,全程不需要在代码或配置中写入任何访问Key Vault的密钥
  • 如果是低于.NET 6的版本,只需要把配置构建逻辑放到Program类的Main方法中即可,配置读取逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:07