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

如何在ASP.NET MVC中将AzureADB2C对象存为Key Vault机密并访问

将ASP.NET MVC的AzureADB2C配置迁移到Azure Key Vault并保持现有代码兼容

1. 在Azure Key Vault中创建对应机密

AzureADB2C的配置是结构化对象,需将每个配置项以层级命名的方式存入Key Vault机密,命名格式为AzureADB2C:{配置项名称},例如:

  • 机密名称:AzureADB2C:Instance,值为你的ADB2C实例地址(如https://yourtenant.b2clogin.com/)
  • 机密名称:AzureADB2C:ClientId,值为应用注册的Client ID
  • 机密名称:AzureADB2C:Domain,值为你的租户域名
  • 机密名称:AzureADB2C:SignUpSignInPolicyId,值为你的登录策略ID
  • 原appsettings中AzureADB2C节点下的其余配置项,均按此格式创建机密

2. 为应用程序分配Key Vault访问权限

场景1:部署在Azure App Service

  • 为你的App Service启用系统托管身份
  • 在Azure Key Vault的「访问控制(IAM)」中添加角色分配:
    • 角色选择「Key Vault Secrets User」
    • 成员选择你的App Service的系统托管身份

场景2:本地开发

  • 确保本地开发环境已通过Azure CLI、Visual Studio或Azure PowerShell登录Azure账户
  • 给你的登录账户分配「Key Vault Secrets User」角色到目标Key Vault

3. 修改Program.cs加载Key Vault机密

在构建Configuration时添加Azure Key Vault作为配置源,系统会自动将Key Vault中的机密映射到AzureADB2C配置节,无需修改原有的认证代码。

示例代码:

var builder = WebApplication.CreateBuilder(args);

// 添加Azure Key Vault作为配置源
builder.Configuration.AddAzureKeyVault(
    new Uri("https://your-keyvault-name.vault.azure.net/"),
    new DefaultAzureCredential()
);

// 原有的认证代码保持不变
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
                .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureADB2C"));

// ... 其他配置代码
var app = builder.Build();
// ... 后续中间件配置

DefaultAzureCredential会自动适配不同环境的认证方式:本地开发时用你的登录账户,Azure部署时用托管身份,无需额外配置。

4. 验证配置

  • 移除或注释掉appsettings.json中的AzureADB2C节点
  • 运行应用,尝试通过ADB2C登录,确认认证流程正常执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:27:29