猿问

如何避免在 appsettings.json 中存储密码或其他敏感数据

我正在开发一个基于 Docker 和微服务的新 ASP.NET Core Web 项目,我想知道是否有一种方法可以避免在appsettings.json.

我的问题是如何在项目外部指定机密,以便它们不会意外提交到源代码存储库(使用 Azure Key Vault 或其他东西)。

我的期望是结合两个配置提供程序,例如一些外部密钥存储(如果没有其他解决方案或处理此类目的的方法)和应用程序配置。


胡说叔叔
浏览 246回答 2
2回答

Cats萌萌

一种常见的方法是将机密存储在外部保管库中,例如 Azure Key Vault。它确实需要本地配置(例如证书)来向保管库提供凭据。它将按照您自己选择的顺序(通过调用config.AddAzureKeyVault)与您的其他配置参数合并。为了避免为本地开发环境进行设置,您可以使用本地机密(dotnet user-secrets命令并以相同的方式将其添加到配置中)。同一 URL 上也有相关文档。请注意,它不是安全存储,实际上它只是磁盘上的纯文本文件。PS 不涉及外部提供商的事情是可能的。在之前的.Net生态系统中,它被称为web.config加密。基本上,您加密了 web.config 的部分,并且密钥存储在 Windows 中,只有指定的帐户有权访问它。这是一次噩梦般的经历,但没有使用外部提供商。您可以执行类似于该方法的操作,但我不知道 .net core 是否有开箱即用的功能。

侃侃尔雅

您可以使用环境变量存储凭据,然后将其放入配置文件中。
随时随地看视频慕课网APP
我要回答