Безопасное подключение к службам и базам данных Azure из Службы приложений Azure
Службе приложений может потребоваться подключение к другим службам Azure, таким как база данных, хранилище или другое приложение. В этом обзоре рекомендуется использовать различные методы для подключения и их использования.
Способ подключения | Когда использовать |
---|---|
Подключение с помощью удостоверения приложения | * Вы хотите подключиться к ресурсу без удостоверений пользователя, прошедшего проверку подлинности, или с помощью удостоверения приложения. * Вам не нужно управлять учетными данными, ключами или секретами, или учетные данные даже не доступны. * Управляемые удостоверения можно использовать для управления учетными данными. * Для доступа к ресурсу Azure требуется удостоверение Microsoft Entra. Например, такие службы, как Microsoft Graph или пакеты SDK для управления Azure. |
Подключение как прошедший проверку подлинности пользователь | * Вы хотите получить доступ к ресурсу и выполнить некоторые действия в качестве пользователя, вошедшего в систему. |
Подключение с помощью секретов | * Необходимо передать секреты приложению в качестве переменных среды. * Вы хотите подключиться к службам, не относящихся к Azure, таким как GitHub, Twitter, Facebook или Google. * Подчиненный ресурс не поддерживает проверку подлинности Microsoft Entra. * Для нижестоящего ресурса требуется строка подключения или ключ или секрет определенного рода. |
Подключение с помощью секретов
В приложении рекомендуется использовать секреты: использование секретов, хранящихся в Azure Key Vault или секретах в параметрах приложения Служба приложений.
Использование секретов в параметрах приложения
Некоторые приложения получают доступ к секретам с помощью переменных среды. Традиционно Служба приложений параметры приложения использовались для хранения строка подключения, ключей API и других переменных среды. Эти секреты внедряются в код приложения в качестве переменных среды при запуске приложения. Параметры приложения всегда шифруются при хранении. Если вы также хотите использовать политики доступа и журнал аудита секретов, рассмотрите возможность их размещения в Azure Key Vault и использования ссылок Key Vault в параметрах приложения.
Примеры использования секретов приложений для подключения к базе данных:
- ASP.NET Core с базой данных SQL
- ASP.NET с базой данных SQL
- Использование PHP и MySQL
- Node.js с MongoDB
- Python с Postgres
- Java с Spring Data
- Кваркус с Postgres
Использование секретов из Key Vault
Azure Key Vault можно использовать для безопасного хранения секретов и ключей, мониторинга доступа и использования секретов, а также упрощения администрирования секретов приложений. Если нижестоящей службе приложения не поддерживается проверка подлинности Microsoft Entra или требуется строка подключения или ключ, используйте Key Vault для хранения секретов и подключения приложения к Key Vault с помощью управляемого удостоверения и получения секретов.
Преимущества управляемых удостоверений, интегрированных с Key Vault, включают:
- Доступ к хранилищу ключей открыт только приложению.
- Участники приложений, например администраторы, могут полностью управлять ресурсами Службы приложений, но в то же время у них нет доступа к секретам Key Vault.
- Если код приложения уже обращается к секретам подключения с использованием параметров приложения, никакое изменение ему не требуется.
- Key Vault обеспечивает мониторинг и аудит доступа к секретам.
- Для смены сведений о соединении в Key Vault не требуются изменения в Службе приложений.
На следующем рисунке показано, как Служба приложений подключиться к Key Vault с помощью управляемого удостоверения, а затем получить доступ к службе Azure с помощью секретов, хранящихся в Key Vault:
Подключение с помощью удостоверения приложения
В некоторых случаях приложение должно получить доступ к данным под удостоверением самого приложения или без вошедшего пользователя. Управляемое удостоверение из идентификатора Microsoft Entra позволяет Служба приложений получать доступ к ресурсам с помощью управления доступом на основе ролей (RBAC), не требуя учетных данных приложения. Управляемое удостоверение может подключаться к любому ресурсу, который поддерживает проверку подлинности Microsoft Entra. Когда вы назначаете веб-приложению управляемое удостоверение, Azure создает и распространяет сертификат. Вам не придется беспокоиться об управлении секретами или учетными данными приложения.
На следующем изображении показана Служба приложений, которая подключается к другим службам Azure:
- А: пользователь посещает веб-сайт службы приложений Azure.
- B. Безопасное подключение из Служба приложений к другой службе Azure с помощью управляемого удостоверения.
- C. Безопасное подключение из Служба приложений к Microsoft Graph с помощью управляемого удостоверения.
Подключение как прошедший проверку подлинности пользователь
В некоторых случаях приложение должно подключиться к ресурсу и выполнить некоторые действия, которые могут выполнять только вошедшего пользователя. Предоставьте приложению делегированные разрешения для подключения к ресурсам с помощью удостоверения пользователя, вошедшего в систему.
На следующем рисунке показано, как приложение безопасно обращается к базе данных SQL от имени пользователя, вошедшего в систему.
Ниже описываются наиболее типичные сценарии применения:
- Подключение в Microsoft Graph в качестве пользователя
- Подключение в базу данных SQL в качестве пользователя
- Подключение другому приложению Служба приложений в качестве пользователя
- Подключение другому приложению Служба приложений, а затем нижестоящей службе от имени пользователя
Следующие шаги
Вы узнаете, как выполнять следующие задачи:
- Безопасно храните секреты в Azure Key Vault.
- Доступ к ресурсам с помощью управляемого удостоверения.
- Храните секреты с помощью параметров приложения Служба приложений.
- Подключение в Microsoft Graph в качестве пользователя.
- Подключение в базу данных SQL в качестве пользователя.
- Подключение другому приложению Служба приложений в качестве пользователя.
- Подключение в другое приложение Служба приложений, а затем нижестоящей службы в качестве пользователя.