1

使用大多数 Azure 服务,我可以在本地计算机上运行模拟器,例如存储模拟器。这允许我将凭据作为我的天蓝色网站上的应用程序设置存储到我的真实天蓝色存储帐户。在本地,我的 web.config 中有模拟器的凭据。

但是如何使用 Azure DocumentDB 实现同样的安全性呢?我不希望将凭据存储在本地 web.config 中,但同时我需要能够在开发时在本地运行应用程序。据我了解,DocumentDB 没有模拟器?我创建的所有 DocumentDB 的端点和身份验证密钥都相同吗?

那么,总结一下我的问题,在开发和使用 Azure DocumentDB 时处理身份验证密钥/端点的最佳做法是什么?

4

2 回答 2

2

通过将连接字符串存储在 Azure 网站环境中,您正在做正确的事情,因此它们不在您的 web.config 中,因此不在您的源代码控制系统中。而且您的本地开发过程对您很有效,只是因为您使用的是不需要任何凭据的模拟器。情况并非总是如此,但正如您在 Document DB 以及您可能用于存储数据的其他资源中所指出的那样。

存储和部署应用程序设置和连接字符串的指南是将它们保存在本地单独的配置文件中,这些文件永远不会签入源代码控制系统。然后,在您的 web.config 文件中,引用这些文件。这会将机密信息排除在您的 web.config 之外。

例如,对于连接字符串,它将是这样的:

<connectionStrings configSource="ConnectionStrings.config">
</connectionStrings>

对于应用程序设置,它将是这样的:

   <appSettings file="..\..\AppSettingsSecrets.config">      
      <add key="webpages:Version" value="3.0.0.0" />
      <add key="webpages:Enabled" value="false" />
      ...
   </appSettings>

有关此技术的更多信息,请点击此处

于 2015-03-07T21:21:23.903 回答
1

另一种选择是将密钥存储为环境变量并让您的代码读取它。

另一方面,您的开发环境应该有一个单独的 docdb,它不是您的生产环境。由于 docdb 不提供模拟器并且没有免费层,这会导致更高的开发成本。

于 2015-03-08T07:56:08.823 回答