.net 核心中用户机密的工作流程?

Workflow for User Secrets in .netcore?

我正在玩 .netcore 并尝试使用用户秘密存储,一些细节在这里:https://docs.asp.net/en/latest/security/app-secrets.html

我在本地工作时相处得很好,但我很难理解如何在团队环境中有效地利用它,以及我是否想在多台计算机上处​​理这个项目.

商店本身(至少在默认情况下)将其配置 json 文件保存在 users/appdata(在 windows 上)。如果您要将项目上传到 github,隐藏您的 API 键、连接字符串等,这个功能非常有用。当只​​有我在一台机器上处理一个项目时,这一切都很棒.但是,当在团队环境中或在多台机器上工作时,这是如何工作的呢?我唯一能想到的就是找到配置文件,将其签入私有仓库,并确保在发生更改时将其替换到正确的目录中。

是否有其他我不知道的管理方法?

如您所知,Secret Manager 工具提供了另一种方法,通过添加此控制层来避免将敏感数据检入源代码管理。

那么,我们应该在哪里存储敏感配置呢?该位置显然应该与您的源代码分开,更重要的是,它应该是安全的。它可以位于单独的私有存储库、受保护的文件共享、文档管理系统等中。

不过,与其查找和共享确切的配置文件,我建议保留一个脚本(例如 .bat 文件),您将 运行 在每台计算机上设置您的秘密。例如:

dotnet user-secrets set MySecret1 ValueOfMySecret1 --project c:\work\WebApp1
dotnet user-secrets set MySecret2 ValueOfMySecret2 --project c:\work\WebApp1

这将在机器之间更加便携,并且避免了知道在哪里可以找到和复制配置文件的麻烦。

此外,对于这些设置,请考虑您是否需要它们在团队中的所有开发人员中都相同。对于本地开发,我通常希望能够以不同于团队中其他人的方式控制资源的安装、使用和命名。当然,这取决于您的情况和喜好,我也看到了分享它们的理由。