为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
胡说叔叔 2023-07-22 16:20:54
我正在开发一个基于 Docker 和微服务的新 ASP.NET Core Web 项目,我想知道是否有一种方法可以避免在appsettings.json.我的问题是如何在项目外部指定机密,以便它们不会意外提交到源代码存储库(使用 Azure Key Vault 或其他东西)。我的期望是结合两个配置提供程序,例如一些外部密钥存储(如果没有其他解决方案或处理此类目的的方法)和应用程序配置。
查看完整描述

2 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

一种常见的方法是将机密存储在外部保管库中,例如 Azure Key Vault。它确实需要本地配置(例如证书)来向保管库提供凭据。

它将按照您自己选择的顺序(通过调用config.AddAzureKeyVault)与您的其他配置参数合并。

为了避免为本地开发环境进行设置,您可以使用本地机密(dotnet user-secrets命令并以相同的方式将其添加到配置中)。同一 URL 上也有相关文档。请注意,它不是安全存储,实际上它只是磁盘上的纯文本文件。

PS 不涉及外部提供商的事情是可能的。在之前的.Net生态系统中,它被称为web.config加密。基本上,您加密了 web.config 的部分,并且密钥存储在 Windows 中,只有指定的帐户有权访问它。这是一次噩梦般的经历,但没有使用外部提供商。您可以执行类似于该方法的操作,但我不知道 .net core 是否有开箱即用的功能。


查看完整回答
反对 回复 2023-07-22
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

您可以使用环境变量存储凭据,然后将其放入配置文件中。

查看完整回答
反对 回复 2023-07-22
  • 2 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信