配置|在ASP.Net Core和Java中配置密钥( 二 )


文章图片

另外两个参数 , 一个是vault的uri , 一个是tenantid也准备好了 。
到这里四个参数都已经准备好了 。
步骤 2 - 参数设置
点击settings下面的secrets选项 , 创建或导入配置:
配置|在ASP.Net Core和Java中配置密钥
文章图片

在弹出的新页面中 , 选择Manual方式 , 输入name和value , 配置数据库的用户名:
配置|在ASP.Net Core和Java中配置密钥
文章图片

然后就创建完成了 , 可以仿照的把sqlserver的密码也配置一下:
配置|在ASP.Net Core和Java中配置密钥
文章图片

步骤 3 - 访问策略设置
创建完成后 , 点击转到该资源进行配置访问策略 , ”Settings=》Access policies“ , 点击 ”Add Access Policy“ 创建新的访问策略 。
首先选择配置模板 Configure from template(optional):"Secret Management" 。
配置|在ASP.Net Core和Java中配置密钥
文章图片

点击 “Nono select” 进行先选择服务主体 , 输入 “自己的服务账号名”, 如laozhang.keyvault.demo , 进行选择 , 点击 “Select” , 保存一下即可 。
到这里Azure相关的配置已经完成 , 开始写代码吧 。
新建一个Core项目
步骤 1 - 创建一个ASP.Net Core5.0 API项目
过程很简单 , 就不多说了 , 创建好后 , 添加nuget包:

< PackageReferenceInclude= "Microsoft.Extensions.Configuration.AzureKeyVault"Version= "3.1.21"/>< PackageReferenceInclude= "Microsoft.VisualStudio.Azure.Containers.Tools.Targets"Version= "1.10.9"/>然后 , 将上边四个变量放到环境变量里 , 本地开发可以在launchSettings.json里:
"IIS Express": {"commandName": "IISExpress","launchBrowser": true,"launchUrl": "swagger","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development","AZURE_TENANT_ID": "你的tenantid","AZURE_CLIENT_ID": "你的客户端id","AZURE_CLIENT_SECRET": "你的客户端密钥","AZURE_KEY_VAULT_URI": "https://blog-core-keyvault.vault.azure.cn/" } } 步骤 2 - 配置Program , 连接配置中心
在Program.cs里配置:
Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration( ( hostingContext, config) =>{ varenv = hostingContext.HostingEnvironment;vartenantId = Environment.GetEnvironmentVariable( "AZURE_TENANT_ID");varclientId = Environment.GetEnvironmentVariable( "AZURE_CLIENT_ID");varclientSecret = Environment.GetEnvironmentVariable( "AZURE_CLIENT_SECRET");config .AddJsonFile( "appsettings.json", true).AddJsonFile($ "appsettings.{env.EnvironmentName}.json", true).AddEnvironmentVariables; stringvaultUri = "https://blog-core-keyvault.vault.azure.cn/"; config.AddAzureKeyVault(vaultUri, clientId, clientSecret);}).ConfigureWebHostDefaults( webBuilder=> {webBuilder.UseStartup<Startup>;});

推荐阅读