广州建设工程造价管理站,wordpress获取文章title,怎么在百度上做单位网站,网站建设流程是这样的 里面有很思路浅析 在软件开发中#xff0c;项目安全是重中之重#xff0c;特别是在多部门或者开源项目中#xff0c;如何保存我们的密钥#xff0c;但又不影响本地的开发#xff0c;更需要我们开发者需要考虑的问题#xff0c;这里简单的列举了下平时开发中我们做的… 思路浅析 在软件开发中项目安全是重中之重特别是在多部门或者开源项目中如何保存我们的密钥但又不影响本地的开发更需要我们开发者需要考虑的问题这里简单的列举了下平时开发中我们做的方案1、本地直接采用localhost的形式开发。无论是DB还是ES/Redis/MQ或者是其他的都一股脑用本地的参数然后部署到K8s的时候使用Configmap的形式挂载。也是一种方案但是会使dev和prod之间隔离的比较厉害。2、使用远程配置中心来统一处理本地和生产直接的数据。比如常见的就是ApolloAzure的Key Vault技术等等。推荐的方式。3、每次上线都手动修改。这显然是不合理的。作为经常使用Azure的开发者决定使用Key Vault技术尝试一波并在ASP.NetCore和SpringBoot中来一个Demo尝试。PS本文采用的都是世纪互联的azure.cn的。 前期准备账号 首先需要注册一个Azure账号。其次需要注册一个应用程序注册的时候填写Client密码密码要好好保存哟以后会多次使用。搜索app registration注册一个账号输入应用名称其他的都默认即可接下来在Certificates secrets中添加Client secrets有了应用就可以在应用内设置密钥了。这个时候我们已经有两个参数了分别是ClientId和ClientSecret。 配置key vault 步骤 1 - 添加Key vault服务继续在顶部搜索Key vault关键字创建一个全新的key vault服务选择自己的订阅和资源组设置下名称创建完成后就可以在keyvault的overview页看到另外两个参数了另外两个参数一个是vault的uri一个是tenantid也准备好了。到这里四个参数都已经准备好了。步骤 2 - 参数设置点击settings下面的secrets选项创建或导入配置在弹出的新页面中选择Manual方式输入name和value配置数据库的用户名然后就创建完成了可以仿照的把sqlserver的密码也配置一下现在万事具备只差写代码了。 新建一个Core项目 步骤 1 - 创建一个ASP.NetCore5.0 API项目过程很简单就不多说了创建好后添加nuget包PackageReference IncludeMicrosoft.Extensions.Configuration.AzureKeyVault Version3.1.21 /
PackageReference IncludeMicrosoft.VisualStudio.Azure.Containers.Tools.Targets Version1.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) {var env hostingContext.HostingEnvironment;var tenantId Environment.GetEnvironmentVariable(AZURE_TENANT_ID);var clientId Environment.GetEnvironmentVariable(AZURE_CLIENT_ID);var clientSecret Environment.GetEnvironmentVariable(AZURE_CLIENT_SECRET);config.AddJsonFile(appsettings.json, true).AddJsonFile($appsettings.{env.EnvironmentName}.json, true).AddEnvironmentVariables();string vaultUri https://blog-core-keyvault.vault.azure.cn/;config.AddAzureKeyVault(vaultUri, clientId, clientSecret);}).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();});如果这个时候启动应用没有报错的话那恭喜你已经连接成功了接下来就是获取指定的参数了。步骤 3 - 任何地方获取Key Vault的值这里使用方法就是和普通的appsettings.json里的一模一样了注入configuration即可_configuration.GetValuestring(MSSQL-USER-PASSWORD);好啦在ASP.NETCore应用中连接Azure Key Vault已经说完了看看Java如何操作吧。 新建一个JAVA项目 步骤 1 - 创建一个Sring Boot项目过程也是很简单可以用Idea创建也可以使用官方的模板来创建就不多说了创建好后添加pom包dependencygroupIdcom.azure.spring/groupIdartifactIdazure-spring-boot-starter-keyvault-secrets/artifactId
/dependency然后将上边四个变量放到配置文件里azure.keyvault.enabledtrue
azure.keyvault.urihttps://blog-core-keyvault.vault.azure.cn/
azure.keyvault.client-id你的应用id
azure.keyvault.client-key你的应用密钥
azure.keyvault.tenant-id你的tenantid
azure.keyvault.authority-hosthttps://login.chinacloudapi.cn注意最后一个配置很重要需要指定host地址因为默认的是azure.com的如果你是azure.com的可以不用指定。步骤 2 - 任何地方获取Key Vault的值这里使用方法就是和普通的yml里的一模一样了配置变量打上Value注解即可SpringBootApplication
public class KeyvaultApplication implements CommandLineRunner {Value(${MSSQL-USER-NAME})private String mySecretProperty;public static void main(String[] args) {SpringApplication.run(KeyvaultApplication.class, args);}Overridepublic void run(String... args) {System.out.println(property your-property-name value is: mySecretProperty);}
}好啦在JAVA应用中连接Azure Key Vault也说完了大家可以尝试动手联系一下哟。 总结 本文以 ASP.NET Core 和 JAVA 为例讲解了如何在 Azure 中连接Key Vault配置整体流程简单方便文档特别清晰再一次为微软Doc文档而欢呼。*Source Linkhttps://github.com/Azure/azure-sdk-for-java/tree/master/sdk/spring/azure-spring-boot-starter-keyvault-secretshttps://devblogs.microsoft.com/dotnet/category/net-core/?WT.mc_idDOP-MVP-5003704*Githubhttps://github.com/anjoy8/Blog.Core/彩蛋牺牲了很多个周末的时光前前后后近一年的时间我和其他几个小伙伴主要是另外三个小伙伴来做的将我这两年的博客整理了一本书——《ASP.Net Core 5.0入门与实战》元旦就可以出版啦有需要的小伙伴可以到时候在各大平台搜索哟还有一个月的倒计时。友情提醒大部分的内容都我这三年来写的博客相关的也有新的内容比如VUE3.0等等良性购买哟。