SQL azure 连接字符串始终包含密码(因为 Azure SQL Server 不支持操作系统身份验证),这使得将它们保存在 web.config
文件中不安全。您可以在网上找到的典型建议是将它们移至云配置设置,这意味着在 ServiceDefinition.csdef
文件的 ServiceDefinition/WebRole/ConfigurationSettings
部分中声明一个设置,以便您可以在门户中编辑它们:
此方法的问题是,每当您重新部署站点时,您在门户中设置的设置都会被 ServiceConfiguration.*.cscfg
中的值覆盖。当然,您可以将连接字符串放入文件中,但这毫无意义,因为您仍然将 secret 保留在源代码管理中。
Azure Key Vault可能是一个很好的解决方案,但我想在走这条路之前探索其他选择。您会推荐什么?
最佳答案
为您的服务创建托管身份,并使用 key 保管库将访问策略添加到 key 保管库。无需存储客户端 secret ,所有配置都以安全方式存储。
关于.net - 如何在Azure中正确存储连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706406/