在Visual Studio 2015中加密SQL单元测试的ConnectionString

时间:2017-01-24 20:11:58

标签: unit-testing azure encryption azure-sql-database azure-keyvault

我在Visual Studio 2015中编写了许多SQL单元测试。目前,他们使用app.config文件中的静态连接字符串连接到数据库(SQL Azure数据库)。

如果可能,我想使用Azure Key Vault保护此信息。

我在加密web.config文件方面看过this onethis one等文章,但它们似乎更适合天蓝色的网络应用。

是否有人能提供更适合SQL单元测试场景的实施建议,或确认上述方法适用于我的情况?

或者是否有其他解决方案,例如覆盖TestService使用的ExecutionContext?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为在Key Vault中存储单元测试的SQL连接字符串是不可取的。对于您的单元测试,要从Key vault检索这些连接字符串,it needs a token from Azure AD与Key vault交谈。因此,您需要在Azure AD中注册一个具有从Key Vault检索机密的权限的应用程序。

但是,对于要将Azure AD作为注册应用程序进行身份验证的应用程序,它需要客户端ID 客户端密钥。这个客户端机密显然无法存储在Key保险库中,因此您需要在Key Key之外存储一个需要保密的秘密。

如果您的单元测试始终在同一台计算机上运行,​​则可以安装客户端证书并使用该证书对Azure AD进行身份验证,而不是客户端密钥。但这会使你的单元测试不太便携。

最好将连接字符串存储在从源代码管理中排除的私有配置文件中,并将referenceapp.configweb.config文件中删除,或者在环境变量中读取它们