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

如何配置ConfigurationBuilder以读取Azure应用服务与Key Vault配置?

配置扩展与顺序问题解答

一、当前配置顺序与优先级

  • 当前的配置添加顺序是合理的,.NET配置系统遵循后添加的配置源优先级更高的规则,即后添加的源中的同名配置会覆盖先添加的。
  • 你当前的顺序是:appsettings.json → appsettings.development.json → User Secrets,所以User Secrets里的配置会覆盖前两个文件中的同名项,符合本地开发时用User Secrets存储敏感信息的最佳实践。

二、读取Azure应用服务配置(含连接字符串)

Azure应用服务的应用设置和连接字符串会自动同步为环境变量,只需在配置链中添加环境变量源即可:

  • 在配置构建器中追加.AddEnvironmentVariables()
  • 顺序上建议放在User Secrets之后,这样Azure应用服务的配置能覆盖本地的User Secrets(生产环境优先使用云端配置)
  • 连接字符串的兼容:Azure应用服务会将连接字符串转换为ConnectionStrings__{名称}格式的环境变量(双下划线替代冒号),.NET配置系统会自动识别并映射到ConnectionStrings节点,和本地配置文件的结构完全兼容。

三、无凭证集成Azure Key Vault

要避免硬编码Key Vault凭证,推荐使用Azure托管标识(Managed Identity),无需存储任何凭证即可访问Key Vault:

前置云端配置

  • 给你的Azure应用服务开启系统分配托管标识(或用户分配托管标识)
  • 在Key Vault的访问策略中,给该托管标识添加机密读取(Secret Get)等必要权限

代码集成

  1. 安装NuGet包:Azure.Extensions.AspNetCore.Configuration.Secrets 和 Azure.Identity
  2. 在配置构建器中添加Key Vault源,使用DefaultAzureCredential自动获取身份凭证(生产环境用托管标识,本地开发用Azure CLI/Visual Studio的登录凭证):
    .AddAzureKeyVault(
        new Uri("https://你的密钥保管库名称.vault.azure.net/"),
        new DefaultAzureCredential()
    )
    
  3. 顺序上把Key Vault放在最后,让它的机密优先级最高(覆盖所有其他配置源的同名项)

完整配置构建示例

var builder = new ConfigurationBuilder();
builder.SetBasePath(Directory.GetCurrentDirectory())
        // 本地基础配置
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        // 开发环境本地配置
        .AddJsonFile("appsettings.development.json", optional: true, reloadOnChange: true)
        // 本地开发敏感配置
        .AddUserSecrets(typeof(Program).GetTypeInfo().Assembly)
        // Azure应用服务配置(环境变量)
        .AddEnvironmentVariables()
        // Azure Key Vault机密(优先级最高)
        .AddAzureKeyVault(
            new Uri("https://your-keyvault-name.vault.azure.net/"),
            new DefaultAzureCredential()
        );
Configuration = builder.Build();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:18:20