Добавление 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.
Необходимые компоненты
- Учетная запись Azure. Если у вас нет учетной записи Azure, активируйте преимущества Azure для подписчиков Visual Studio или зарегистрируйтесь для получения бесплатной пробной версии.
- Visual Studio 2019 версии 16.3 или скачайте более новую версию.
Добавление поддержки Key Vault в проект
Прежде чем начать, убедитесь, что вы вошли в Visual Studio. Войти с той же учетной записи, с которой вы пользуетесь подпиской Azure. Затем откройте веб-проект ASP.NET версии 4.7.1 или более поздней версии или ASP.NET Core и выполните следующие действия. Ниже приведены шаги для Visual Studio 2022 версии 17.4. Поток может немного отличаться для других версий Visual Studio.
В Обозреватель решений щелкните правой кнопкой мыши проект, в который нужно добавить поддержку Key Vault, и выберите пункт "Добавить> подключенную службу" или щелкните правой кнопкой мыши узел "Подключенные службы".
Если узел "Подключенные службы" не отображается, выберите "Добавить подключенные службы> project".>
В разделе "Зависимости службы" выберите + значок. Откроется страница "Подключенная служба" с перечнем служб, которые можно добавить в проект.
В меню служб выберите Azure Key Vaultи щелкните Next.
Выберите подписку, которую вы хотите использовать, а затем, если у вас уже есть хранилище ключей, которое вы хотите использовать, нажмите кнопку " Далее".
Если у вас нет существующего хранилища ключей, нажмите кнопку "Создать новое хранилище ключей". Вам будет предложено указать группу ресурсов, расположение и номер SKU.
На экране "Настройка Key Vault" можно изменить имя переменной среды, которая ссылается на универсальный код ресурса (URI) Key Vault. Строка подключения здесь не хранится; он хранится в хранилище ключей.
Нажмите кнопку "Далее ", чтобы просмотреть сводку изменений и завершить.
Теперь подключение к 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.