使用 Visual Studio 连接服务将 Key Vault 添加到 Web 应用程序

本教程介绍如何轻松添加开始使用 Azure Key Vault 管理 Visual Studio 中 Web 项目的机密所需的一切,无论是使用 ASP.NET Core 还是任何类型的 ASP.NET 项目。 通过使用 Visual Studio 中的连接服务功能,可以让 Visual Studio 自动添加连接到 Azure 中的 Key Vault 所需的所有 NuGet 包和配置设置。

先决条件

向项目添加 Key Vault 支持

在开始之前,请确保已登录到 Visual Studio。 使用用于 Azure 订阅的同一帐户登录。 然后打开 ASP.NET 4.7.1 或更高版本,或 ASP.NET Core Web 项目,然后执行以下步骤。 显示的步骤适用于 Visual Studio 2022 版本 17.4。 对于其他版本的 Visual Studio,该流可能略有不同。

  1. 解决方案资源管理器中,右键单击要向其添加 Key Vault 支持的项目,然后选择 添加>连接服务,或右键单击 连接服务 节点,然后选择 添加

    如果未看到“连接的服务”节点,请选择“项目”>“连接的服务”>“添加”

  2. 服务依赖项下,选择 + 图标。 此时会显示“连接服务”页,其中包含可添加到项目中的服务。

  3. 在可用服务的菜单中,选择 Azure Key Vault,然后单击“下一步”

    显示“连接服务”屏幕的屏幕截图,其中包含选择 Azure Key Vault 的选项。

  4. 选择要使用的订阅,然后,如果已有要使用的密钥保管库,选择它并单击“下一步”

    屏幕截图,显示“选择你的订阅”。

  5. 如果您没有现有的密钥保管库,或者需要设置与现有密钥保管库不同权限的密钥保管库,请单击创建新的密钥保管库。 系统将要求你提供资源组、位置和 SKU。

    “创建 Azure Key Vault”屏幕的屏幕截图。

  6. 配置 Key Vault 屏幕中,可以更改引用 Key Vault URI 的环境变量的名称。 连接字符串不存储在此处;它存储在密钥保管库中。

    “连接到 Azure Key Vault”屏幕的屏幕截图。

    说明

    为了提高安全性,在 Visual Studio 17.12 及更高版本中,此步骤将创建连接设置名称;以前的版本创建连接字符串。 如果连接字符串无意中暴露,则存储在本地的连接字符串可能会导致安全风险。

  7. 单击“下一步”,直到看到更改摘要,然后单击“完成”

在开始之前,请确保已登录到 Visual Studio。 使用用于 Azure 订阅的同一帐户登录。 然后打开 ASP.NET 4.7.1 或更高版本,或 ASP.NET Core Web 项目,然后执行以下步骤。

  1. 解决方案资源管理器中,右键单击要向其添加 Key Vault 支持的项目,然后选择 添加>连接服务,或右键单击 连接服务 节点,然后选择 添加

    如果未看到 连接服务 节点,请选择 项目>连接服务>添加

  2. 服务依赖项下,选择 + 图标。 此时会显示“连接服务”页,其中包含可添加到项目中的服务。

  3. 在可用服务的菜单中,选择 Azure Key Vault,然后单击“下一步”

    屏幕截图,其中显示了“连接服务”屏幕和选择“Azure Key Vault”选项。

  4. 选择要使用的订阅,然后,如果已有要使用的密钥保管库,选择它并单击“下一步”

    屏幕截图显示“选择您的订阅”。

  5. 如果没有现有的 Key Vault,请单击 创建新的 Key Vault。 系统将要求你提供资源组、位置和 SKU。

    “创建 Azure Key Vault”屏幕的屏幕截图。

  6. 配置 Key Vault 屏幕中,可以更改引用 Key Vault URI 的环境变量的名称。 连接字符串不存储在此处;它存储在密钥保管库中。

    “连接到 Azure Key Vault”屏幕的屏幕截图。

  7. 单击“下一步”以查看更改摘要,然后单击“完成”

现在,已建立与密钥保管库的连接,你可以在代码中访问机密。 如果刚刚创建新的密钥保管库,请通过创建可在代码中引用的机密来测试它。 可以使用 Azure 门户PowerShellAzure CLI来创建机密。

有关使用机密的代码示例,请参阅适用于 .NET 的 Azure Key Vault 机密客户端库 - 代码示例

配置对密钥保管库的访问

如果已使用 Visual Studio 2022 版本 17.11 或更早版本遵循本教程,则密钥保管库权限设置为使用自己的 Azure 订阅运行,但对于生产方案来说可能不需要这样做。 可以创建托管标识来管理应用的 Key Vault 访问权限。 请参阅 如何向 Key Vault 进行身份验证分配 Key Vault 访问策略。

如果密钥保管库运行的Microsoft帐户不同于登录到 Visual Studio 的帐户(例如,密钥保管库正在工作帐户上运行,但 Visual Studio 正在使用专用帐户),则Program.cs文件中出现错误,Visual Studio 无法访问密钥保管库。 若要解决此问题,请转到 azure 门户 ,打开密钥保管库,然后选择 访问控制(IAM) 来设置权限。 请参阅 使用 Azure 基于角色的访问控制(RBAC)提供对 Key Vault 密钥、证书和机密的访问权限。

说明

旧密钥保管库可能使用旧访问策略模型。 建议迁移较旧的密钥保管库以使用 Azure RBAC。 请参阅 Azure 基于角色的访问控制(RBAC)与访问策略

后续步骤

阅读 Key Vault 开发人员指南了解有关 Key Vault 开发的详细信息。

如果目标是在 Azure 密钥保管库中存储 ASP.NET Core 应用的配置,请参阅 ASP.NET Core 中的Azure Key Vault 配置提供程序。