ASP.NET Core Web Api配置Azure Key Vault

Posted zmsoftbj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Core Web Api配置Azure Key Vault相关的知识,希望对你有一定的参考价值。

 

 

 

 

1. 项目创建

1.1 安装

  下载.NETCORE SDK 进行安装

  下载NETCORE RUNTIME进行安装.

  下载Runtime & Hosting Bundle进行安装

  下载地址:https://dotnet.microsoft.com/download/dotnet-core

  微软的安装在windows方面很简单,基本就是一键安装.

1.2 开发工具

            VisualStudio 2019

1.3建立项目工程

  点击文件创建项目,出现如下图示

技术图片

  

  选择画红圈部分,接着出现如下图示

 

技术图片

 

2. Azure Key Vault

2.1 将应用程序与 Azure Active Directory 集成

2.1.1登录Azure protal , 选择Azure Active Directory 网址:https://portal.azure.cn

技术图片

 

2.1.2 选择应用注册

技术图片

2.1.3 点击添加新注册,输入名称点确定,即会自动生成客户端ID

技术图片

 

 

 2.2 创建key vault

技术图片

 

2.3 创建机密

技术图片

 

 

3. 代码配置 Key Vault

3.1 安装nuget依赖包

技术图片

 

3.2 代码配置

Program.cs

 public class Program
    
        public static void Main(string[] args)
        
            BuildWebHost(args).Run();
        

        public static IWebHost BuildWebHost(string[] args) =>
           WebHost.CreateDefaultBuilder(args)
               .ConfigureAppConfiguration((ctx, builder) =>
               
                   var keyVaultEndpoint = GetKeyVaultEndpoint();
                   if (!string.IsNullOrEmpty(keyVaultEndpoint))
                   
                       var azureServiceTokenProvider = new AzureServiceTokenProvider();
                       var keyVaultClient = new KeyVaultClient(
                           new KeyVaultClient.AuthenticationCallback(
                               azureServiceTokenProvider.KeyVaultTokenCallback));
                       builder.AddAzureKeyVault(
                           keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
                   
               
            ).UseStartup<Startup>()
             .Build();

        private static string GetKeyVaultEndpoint() => "https://abb-key-vault.vault.azure.cn/";
    

 

3.3 使用key vault

public class AboutModel : PageModel

        public string Message  get; set; 

        public AboutModel(IConfiguration configuration)
        
            _configuration = configuration;
        

        private readonly IConfiguration _configuration = null;

        public void OnGet()
        
            Message = "My key val = " + _configuration["AppSecret"];
        
 

 

其中 “AppSecret”即是key vault中设置的键,通过_configuration["AppSecret"]可以获取到值。

 

以上是关于ASP.NET Core Web Api配置Azure Key Vault的主要内容,如果未能解决你的问题,请参考以下文章

即使在配置 ASP.NET Core Web API 中启用了 CORS,CORS 也会阻止发布请求

asp.net web.Config 配置httpHandlers无效 求解,在线等!

支持多个版本的ASP.NET Core Web API

如何在 ASP.NET Core Web API 中使用 MassTransit 事件总线?

无法使用 Windows 身份验证发布到 asp.net core web api

将文件从 ASP.NET Core Web api 发布到另一个 ASP.NET Core Web api