Поделиться через


Добавление Azure Key Vault в веб-приложение с помощью Подключенных служб Visual Studio

В этом руководстве вы узнаете, как легко добавить все, что нужно, чтобы приступить к использованию Azure Key Vault для управления секретами веб-проектов в Visual Studio при работе с проектом ASP.NET Core или проектом ASP.NET любого типа. С помощью функции "Подключенные службы" в Visual Studio можно использовать Visual Studio, чтобы автоматически добавлять пакеты NuGet и параметры конфигурации, необходимые для подключения к хранилищу ключей в Azure.

Дополнительные сведения об изменениях, внесенных подключенными службами в проекте для включения Key Vault, см. в статье "Подключенная служба Key Vault" — что произошло с моим проектом ASP.NET или подключенной службой Key Vault . Что произошло с моим проектом ASP.NET Core.

Необходимые компоненты

Добавление поддержки Key Vault в проект

Прежде чем начать, убедитесь, что вы вошли в Visual Studio. Войти с той же учетной записи, с которой вы пользуетесь подпиской Azure. Затем откройте веб-проект ASP.NET версии 4.7.1 или более поздней версии или ASP.NET Core и выполните следующие действия. Ниже приведены шаги для Visual Studio 2022 версии 17.4. Поток может немного отличаться для других версий Visual Studio.

  1. В Обозреватель решений щелкните правой кнопкой мыши проект, в который нужно добавить поддержку Key Vault, и выберите пункт "Добавить> подключенную службу" или щелкните правой кнопкой мыши узел "Подключенные службы".

    Если узел "Подключенные службы" не отображается, выберите "Добавить подключенные службы> project".>

  2. В разделе "Зависимости службы" выберите + значок. Откроется страница "Подключенная служба" с перечнем служб, которые можно добавить в проект.

  3. В меню служб выберите Azure Key Vaultи щелкните Next.

    Выберите

  4. Выберите подписку, которую вы хотите использовать, а затем, если у вас уже есть хранилище ключей, которое вы хотите использовать, нажмите кнопку " Далее".

    Снимок экрана: выбор подписки

  5. Если у вас нет существующего хранилища ключей, нажмите кнопку "Создать новое хранилище ключей". Вам будет предложено указать группу ресурсов, расположение и номер SKU.

    Снимок экрана:

  6. На экране "Настройка Key Vault" можно изменить имя переменной среды, которая ссылается на универсальный код ресурса (URI) Key Vault. Строка подключения здесь не хранится; он хранится в хранилище ключей.

    Снимок экрана: подключение к Azure Key Vault.

  7. Нажмите кнопку "Далее ", чтобы просмотреть сводку изменений и завершить.

Теперь подключение к Key Vault установлено и вы можете получить доступ к секретам в коде. Если вы только что создали новое хранилище ключей, проверьте его, создав секрет, который можно ссылаться в коде. Вы можете создать секрет с помощью портала Azure, PowerShell или Azure CLI.

Примеры работы с секретами в клиентской библиотеке секретов Azure Key Vault для .NET — примеры кода.

Настройка доступа к хранилищу ключей

Если хранилище ключей выполняется в другой учетной записи Майкрософт, отличной от учетной записи Майкрософт, вошедшего в Visual Studio (например, хранилище ключей выполняется в рабочей учетной записи, но Visual Studio использует частную учетную запись) вы получите ошибку в файле Program.cs, что Visual Studio не может получить доступ к хранилищу ключей. Чтобы устранить эту проблему, перейдите к портал Azure, откройте хранилище ключей и выберите элемент управления доступом (IAM), чтобы задать разрешения. См. раздел "Предоставление доступа к ключам, сертификатам и секретам" с помощью управления доступом на основе ролей Azure (RBAC).

Примечание.

Старые хранилища ключей могут использовать устаревшую модель политики доступа. Рекомендуется перенести старые хранилища ключей для использования Azure RBAC. Ознакомьтесь с политиками доступа на основе ролей Azure (RBAC) и политиками доступа.

Изменение проекта ASP.NET Core

Этот раздел определяет точные изменения, внесенные в проект ASP.NET при добавлении подключенной службы хранилища ключей с помощью Visual Studio.

Добавлены ссылки на ASP.NET Core

Это изменение влияет на ссылки файлов проекта .NET и ссылки на пакеты NuGet.

Тип Ссылка
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Добавлены файлы для ASP.NET Core

  • ConnectedService.jsonДобавлен файл, в который записываются некоторые сведения о поставщике подключенной службы, версия и ссылка на документацию.

Изменения в файле проекта для ASP.NET Core

  • Добавлены элемент ItemGroup "Подключенные службы" и ConnectedServices.jsonфайл.

launchsettings.json изменениях для ASP.NET Core

  • Добавлены следующие записи переменной среды в профиль Express службы IIS (IIS) и профиль, соответствующий имени веб-проекта:

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Изменения в Azure для ASP.NET Core

  • Создана группа ресурсов или использована существующая.
  • Создайте хранилище ключей в указанной группе ресурсов.

Изменение проекта ASP.NET Framework

Этот раздел определяет точные изменения, внесенные в проект ASP.NET при добавлении подключенной службы хранилища ключей с помощью Visual Studio.

Добавлены ссылки для ASP.NET Framework

Это изменение влияет на файлы проекта ссылки *.NET и packages.config (ссылки NuGet).

Тип Ссылка
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.key хранилище. Секреты

Внимание

По умолчанию Azure.Identity 1.1.1 установлен и учетные данные Visual Studio не поддерживаются. Ссылку на пакет можно обновить вручную до версии 1.2 и использовать учетные данные Visual Studio.

Добавлены файлы для ASP.NET Framework

  • ConnectedService.jsonДобавлен файл, в который записываются некоторые сведения о поставщике подключенной службы, версия и ссылка на документацию.

Изменения в файле проекта для ASP.NET Framework

  • Добавлены элемент ItemGroup "Подключенные службы" и файл ConnectedServices.json.
  • Ссылки на сборки .NET, описанные в разделе Добавленные ссылки.

Следующие шаги

Если вы следовали этому уроку, ваши разрешения Key Vault настроены для работы с вашей собственной подпиской Azure, но это может быть нежелательно для рабочего сценария. Вы можете создать управляемое удостоверение для управления доступом к Key Vault для вашего приложения. См. статью Проверка подлинности в Key Vault и назначение политики доступа в Key Vault.

Узнайте больше о разработке для Key Vault в руководстве разработчика для Key Vault.

Если ваша цель заключается в хранении конфигурации для приложения ASP.NET Core в хранилище ключей Azure, ознакомьтесь с поставщиком конфигурации Azure Key Vault в ASP.NET Core.