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


首先选择配置模板 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>;});
如果这个时候 , 启动应用没有报错的话 , 那恭喜你 , 已经连接成功了 , 接下来就是获取指定的参数了 。
步骤 3 - 任何地方获取Key Vault的值
这里使用方法就是和普通的appsettings.json里的一模一样了 , 注入configuration即可:
_configuration.GetValue< string>( "MSSQL-USER-PASSWORD"); 好啦 , 在ASP.NET Core应用中 , 连接Azure Key Vault已经说完了 , 看看Java如何操作吧 。
新建一个Java项目
步骤 1 - 创建一个Sring Boot项目
过程也是很简单 , 可以用Idea创建 , 也可以使用官方的模板来创建 , 就不多说了 , 创建好后 , 添加pom包:
< dependency> < groupId> com.azure.spring </ groupId> < artifactId> azure-spring-boot-starter-keyvault-secrets </ artifactId> </ dependency然后 , 将上边四个变量放到配置文件里 ,
azure.keyvault.enabled= trueazure.keyvault.uri=https: //blog-core-keyvault.vault.azure.cn/azure.keyvault.client- id=你的应用 idazure.keyvault.client-key=你的应用密钥azure.keyvault.tenant- id=你的tenantid azure.keyvault.authority-host=https: //login.chinacloudapi.cn注意最后一个配置很重要 , 需要指定host地址 , 因为默认的是Azure.com的 , 如果你是Azure.com的可以不用指定 。
步骤 2 - 任何地方获取Key Vault的值
这里使用方法就是和普通的yml里的一模一样了 , 配置变量 , 打上@value注解即可:

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。