保护Azure应用程序中的连接字符串和应用程序设置 - 如何在本地使用它们

时间:2017-07-05 23:12:18

标签: c# asp.net azure web-config connection-string

在我作为Azure应用服务托管的网络应用中,我在web.config进行了以下测试:

<connectionStrings>
    <add name="ProductionConnection" providerName="System.Data.SqlClient" connectionString="Data Source=tcp:something.database.windows.net,1433;Initial Catalog=DatabaseName;User Id=admin@sssdddr;Password=Pass@word1;Trusted_Connection=False;Encrypt=True;Connection Timeout=30; MultipleActiveResultSets=True" />
</connectionStrings>

我尝试在此处遵循一些基本的安全最佳做法,因此我已将连接字符串移至我的网络应用的Application Settings部分:

enter image description here

这个特殊的设置是一个糟糕的例子,因为理想情况下我只有ProductionConnection存储在Azure中而从未在本地使用过 - 但对于其他连接字符串而言appSettings在本地和生产中使用应该受到保护,在本地开发时应该如何处理这些值?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找来自开发者的保密/连接字符串,请转到Azure Key Vault,以保护所有人的所有秘密。每个秘密都将作为URI公开给最终开发人员以通过REST使用。

为此,您需要使用Azure AD register your application,因为KeyVault会请求AD令牌提供机密。

答案 1 :(得分:0)

  

我的意思是不应该烘焙连接字符串值/ app设置   进入应用程序的bin目录

连接字符串通常位于web.config文件中。 web.config永远不会在bin文件夹中;我们通常把它放在应用程序的根文件夹中。

我认为您的意思是存储用户名和密码等敏感信息以访问SQL Server。您无法隐藏正在调试应用程序的开发人员的连接字符串和设置。

在企业环境中,我们(开发人员)使用 Windows身份验证 来访问SQL Server。