如何在Azure Key Vault存储Stripe、Facebook密钥并在ASP.NET Core中调用
将Stripe/Facebook密钥存储到Azure Key Vault并在ASP.NET Core中使用
步骤1:在Azure Key Vault中添加机密
- 登录Azure门户,创建或进入你的Key Vault实例
- 进入「机密」菜单,点击「生成/导入」
- 依次创建以下机密(名称可自定义,建议清晰易懂):
- 名称:
StripeApiKey,值为你的Stripe密钥 - 名称:
FacebookAppId,值为Facebook的App ID - 名称:
FacebookAppSecret,值为Facebook的应用密钥
- 名称:
步骤2:配置ASP.NET Core应用访问Key Vault
- 安装必要的NuGet包:
Install-Package Azure.Extensions.AspNetCore.Configuration.Secrets Install-Package Azure.Identity - 修改
Program.cs的配置加载逻辑,添加Key Vault作为配置源:var builder = WebApplication.CreateBuilder(args); // 从appsettings读取Key Vault地址,添加到配置链 var keyVaultUri = new Uri(builder.Configuration["KeyVaultUri"]); builder.Configuration.AddAzureKeyVault(keyVaultUri, new DefaultAzureCredential()); // 后续的服务注册、中间件配置... - 在
appsettings.json中添加Key Vault的URI:{ "KeyVaultUri": "https://你的密钥保管库名称.vault.azure.net/" }
步骤3:在应用中调用机密
方式1:直接通过IConfiguration读取
在代码中直接从配置获取机密值:
// 示例:在服务注册或控制器中使用 var stripeKey = builder.Configuration["StripeApiKey"]; var fbAppId = builder.Configuration["FacebookAppId"];
方式2:在appsettings.json中引用Key Vault机密
如果需要在配置文件中关联这些密钥,可以用Key Vault引用语法:
{ "Stripe": { "ApiKey": "@Microsoft.KeyVault(SecretName=StripeApiKey)" }, "Facebook": { "AppId": "@Microsoft.KeyVault(SecretName=FacebookAppId)", "AppSecret": "@Microsoft.KeyVault(SecretName=FacebookAppSecret)" } }
之后可以通过绑定配置类的方式读取,比如创建StripeSettings类,用Options模式注入。
步骤4:配置Key Vault访问权限
- 回到Azure门户的Key Vault实例,进入「访问控制(IAM)」
- 添加角色分配,给你的应用服务主体(本地开发时可使用当前Azure账户)分配「Key Vault机密用户」角色,确保应用有权限读取机密
内容的提问来源于stack exchange,提问作者Jatinder Singh Malhi
相关产品推荐
相关产品推荐

