如何安全存储连接字符串,客户端ID等?

时间:2019-06-18 09:36:03

标签: azure .net-core azure-devops azure-cosmosdb azure-keyvault

让我提供一些设置细节

我正在构建一个Azure上托管的asp.net核心API应用。我将我的秘密密钥和东西存储在天蓝色的密钥库中。但是,我有一些AzureAddClientId和秘密,这些秘密和秘密现在存储在appsettings.json(中以访问密钥库)。我也将appsettings.json提交到我的git repo中。但是我知道那是不安全的。我将Azure DevOps用于发行版。所以我正在考虑做以下事情。请让我知道您对此的想法。

  1. 添加appsettings.json以git忽略并在开发人员之间共享文件。
  2. 将AzureAddClientId和AzureAADClientSecret添加到Azure DevOps构建管道中作为变量。 (devops是否会像在appsettings.json中一样自动获取变量?)

1 个答案:

答案 0 :(得分:2)

请使用Managed Identities

  

构建云应用程序时的常见挑战是如何管理代码中的凭据以对云服务进行身份验证。确保凭据安全是一项重要任务。理想情况下,凭据永远不会出现在开发人员工作站上,也不会签入源代码管理。 Azure密钥保管库提供了一种安全地存储凭据,机密和其他密钥的方法,但是您的代码必须通过密钥保管库进行身份验证才能检索它们。

     

Azure Active Directory(Azure AD)中Azure资源的托管身份功能解决了此问题。该功能在Azure AD中为Azure服务提供自动管理的身份。您可以使用该身份进行身份验证,以支持任何支持Azure AD身份验证的服务,包括Key Vault,代码中没有任何凭据