如何在Azure DevOps / TFS代码存储库中的C#项目中处理密码和秘密



开发团队应如何处理C#项目中存储的密码和秘密。

我们使用Visual Studio 2015和Azure DevOps(主要是VST,有时是Git Repos(作为代码存储库。

我们(随时可以(尝试将安全数据存储在单独的配置文件中,并在.tfignore/.gitignore中忽略这些文件。

不时有人忘记,秘密被提交。有时,密码存储在单元测试中,并且未删除事先检查。

如果一个开发人员立即通知,但是有时我们会在以后发现这一点。

我认为我已经看到某个地方(现在找不到(,可以在保存安全信息的代码中装饰行。这要么警告开发人员,甚至可以阻止入住。不确定这是Visual Studio Addin,Azure DevOps功能或其他不同的内容。

我认为您有两个选择:

  1. 环境变量:您可以使用同一密钥名称的环境变量覆盖本地应用程序秘密。
  2. Secret Manager:此工具将应用程序秘密分别存储到您的项目中,并且可以在不同的项目中共享。他们没有签入来源控制。但是,请注意,这仅是为了开发,因为内容未加密。对于生产,您可以使用诸如Azure密钥库之类的服务。

对于您的Azure DevOps构建和部署管道,您可以在管道>库>安全文件下使用安全文件选项。这将上传并加密秘密文件,并通过下载安全文件任务使其可用于管道。例如:

- task: DownloadSecureFile@1
  name: mySecureFile
    inputs:
      secureFile: file-name-of-secure-file

一旦下载,您可以使用name使用$(mySecureFile.secureFilePath)变量在其他任务中引用它。

最新更新