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

如何在Azure Web App中集成.NET类库读取Azure Key Vault密钥?

集成.NET Key Vault类库到Azure Web App的步骤

一、前置准备

  • 打包类库:把AKVClassLibrary编译成NuGet包或者直接生成DLL。用Visual Studio的话,右键类库项目→发布,选NuGet包输出或者直接生成拿到bin目录下的DLL就行。
  • 开启Web App托管标识:
    登录Azure门户找到目标Web App,进入「身份」面板,切换到「系统分配」标签,开启状态后保存,系统会自动生成一个托管标识。
  • 给托管标识加Key Vault权限:
    找到对应的Key Vault,进入「访问策略」→「添加访问策略」,权限选「机密」里的「Get」权限(只需要读机密的话够了),主体选择刚才Web App的托管标识名称,保存策略。要是Key Vault和Web App不在同一个订阅/资源组,搜不到名称的话,用托管标识的Client ID来搜索就能找到。

二、Web App项目集成类库

1. 引用类库

  • NuGet包方式:在Web App项目的NuGet包管理器里,安装你打包好的AKVClassLibrary包。
  • DLL方式:把类库生成的DLL复制到Web App项目目录,右键项目→添加→引用→浏览选中这个DLL。

2. 配置Key Vault URL

两种配置方式选一种就行:

  • 本地配置:在Web App的appsettings.json里加一段:
{
  "KeyVaultSettings": {
    "VaultUrl": "https://你的密钥保管库名称.vault.azure.net/"
  }
}
  • 云端配置:在Azure门户的Web App「配置」→「应用程序设置」里,新增配置项KeyVaultSettings__VaultUrl,值填你的Key Vault URL。

3. 注册服务(依赖注入)

在Web App的Program.cs里注册KeyVaultService:

using AKVClassLibrary;

var builder = WebApplication.CreateBuilder(args);

// 从配置里读Key Vault URL
var vaultUrl = builder.Configuration["KeyVaultSettings:VaultUrl"];
// 把KeyVaultService注册成单例
builder.Services.AddSingleton<KeyVaultService>(_ => new KeyVaultService(vaultUrl));

// 其他服务注册代码...

var app = builder.Build();

// 中间件配置代码...

app.Run();

4. 在业务代码里调用

比如在Controller里注入并使用:

using AKVClassLibrary;
using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    private readonly KeyVaultService _keyVaultService;

    public HomeController(KeyVaultService keyVaultService)
    {
        _keyVaultService = keyVaultService;
    }

    public async Task<IActionResult> Index()
    {
        // 替换成你要获取的机密名称
        var secretValue = await _keyVaultService.GetSecretAsync("你的机密名称");
        // 拿到机密值后做业务逻辑处理
        return View();
    }
}

三、跨订阅/资源组的额外注意事项

  • 要是Key Vault所在的订阅有RBAC限制,得给Web App的托管标识分配「Key Vault机密用户」角色,或者自定义一个只包含机密Get权限的角色,确保它能访问Key Vault。
  • 权限测试:可以通过Web App的「高级工具」打开Kudu控制台,或者用Azure CLI命令az webapp identity show查看托管标识信息,再用az keyvault show确认权限是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:36:17