2016-09-23 131 views
6

我跟着Safe storage of app secrets during development指南在发展过程中asp.net文档,但它并没有描述如何使用它发布到另一台机器的质量保证,生产,等等。当我认为它会在发布期间将它们插入到appsettings.json中,但它不会。我最终不得不将SendGrid密钥和其他敏感信息直接放到appsettings.json中,这实际上破坏了应用程序机密的目的。如何部署ASP.NET核心UserSecrets生产

使用应用程序的秘密是最好的方式还是有另一种方法来存储API密钥和SQL用户/密码在我的配置?

+0

我想你应该在你想运行你的项目首次每台机器重新创建。 –

+0

只有当某个环境变量设置为开发时才会应用用户机密 –

+2

从您的链接中,_ Secret Manager工具不会加密存储的机密,因此不应将其视为可信存储。它仅用于开发目的。这只是为了防止在您的回购代码中犯下秘密。在生产中将秘密值设置为appsettings或env变量或任何其他配置源。 –

回答

4

不要在生产中使用应用程序秘密。永远。正如文章所述,在发展期间。

如何在生产环境中发布秘密取决于您的生产环境。 Linux,Windows和Azure都支持环境变量 - 这就是你的秘密应该去的地方,使用你的托管服务提供商提供给你的任何UI。

app settings documentation进入这个更详细

+0

虽然不如部署配置文件那么简单,但我明白为什么要使用环境变量。 –