首页 > 解决方案 > 如何安全地存储连接字符串客户端 ID 等?

问题描述

让我详细介绍一下我的设置

我正在构建一个托管在 Azure 上的 asp.net 核心 API 应用程序。我将我的密钥和东西存储在 azure keyvault 中。但是,我有一些 AzureAddClientId 和机密,现在存储在 appsettings.json(用于访问密钥库)中。我还将 appsettings.json 提交到我的 git 存储库。但是我知道这是不安全的。我使用 Azure DevOps 进行发布。所以我正在考虑做以下事情。请让我知道您对此的看法。

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

标签: azure.net-coreazure-devopsazure-cosmosdbazure-keyvault

解决方案


请查看使用Managed Identities

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

Azure Active Directory (Azure AD) 中的 Azure 资源托管标识功能解决了这个问题。该功能在 Azure AD 中为 Azure 服务提供了一个自动管理的标识。您可以使用该标识向任何支持 Azure AD 身份验证的服务(包括 Key Vault)进行身份验证,而无需在您的代码中添加任何凭据


推荐阅读