Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Рекомендуемый подход к проверке подлинности размещенного в Azure приложения в других ресурсах Azure — использовать управляемое удостоверение. Этот подход поддерживается для большинства служб Azure, включая приложения, размещенные в службе приложений Azure, приложениях контейнеров Azure и виртуальных машинах Azure. Узнайте больше о различных методах и подходах аутентификации на странице обзор методов аутентификации. В следующих разделах вы узнаете:
- Основные понятия управляемой идентификации
- Как создать управляемую удостоверенность, назначаемую системой, для вашего приложения
- Назначение ролей управляемому удостоверению, назначаемого системой
- Как выполнить аутентификацию с использованием управляемого удостоверения, назначенного системой, в коде вашего приложения.
Основные понятия управляемой идентификации
Управляемое удостоверение позволяет приложению безопасно подключаться к другим ресурсам Azure без использования секретных ключей или других секретов приложения. В Azure отслеживается идентичность и ресурсы, к которым разрешено подключаться. Azure использует эти сведения для автоматического получения маркеров Microsoft Entra для приложения, чтобы разрешить ему подключаться к другим ресурсам Azure.
Существуют два типа управляемых удостоверений, которые следует учитывать при настройке хостингового приложения:
- Назначаемые системой управляемые идентификаторы включаются прямо на ресурсе Azure и привязаны к его жизненному циклу. При удалении ресурса Azure автоматически удаляет удостоверение вместо вас. Системные идентификаторы обеспечивают простой подход к использованию управляемых удостоверений.
- Назначенные пользователем управляемые удостоверения создаются как автономные ресурсы Azure и обеспечивают большую гибкость и возможности. Они идеально подходят для решений, связанных с несколькими ресурсами Azure, которые должны совместно использовать одинаковые удостоверения и разрешения. Например, если нескольким виртуальным машинам требуется доступ к одному набору ресурсов Azure, управляемое удостоверение, назначаемое пользователем, обеспечивает повторное использование и оптимизированное управление.
Подсказка
Дополнительные сведения о выборе управляемых удостоверений, назначаемых системой, и управлении ими, назначаемых системой, см. в статье рекомендаций по использованию управляемых удостоверений .
В следующих разделах описаны шаги для включения и использования системного управляемого удостоверения для приложения, размещенного в Azure. Если вам нужно использовать управляемое удостоверение, назначаемое пользователем, ознакомьтесь с управляемыми удостоверениями, назначаемыми пользователем, статье.
Включение управляемого системного удостоверения на ресурсе размещения Azure
Чтобы начать использовать системное управляемое удостоверение с вашим приложением, включите удостоверение на ресурсе Azure, который размещает ваше приложение, например, в Службе приложений Azure, приложении контейнера Azure или виртуальной машине Azure.
Вы можете включить управляемое удостоверение, назначаемое системой для ресурса Azure, с помощью портала Azure или Azure CLI.
На портале Azure перейдите к ресурсу, в котором размещен код приложения, например службе приложений Azure или экземпляру приложения контейнера Azure.
На странице Обзор ресурса разверните Настройки и выберите Идентификация в панели навигации.
На странице Identity переключите ползунок состояния на On.
Нажмите кнопку Сохранить, чтобы применить изменения.
Назначьте роли управляемому удостоверению
Затем определите, какие роли нужны вашему приложению, и назначьте эти роли для управляемого удостоверения. Роли можно назначить управляемым идентичностям на следующих уровнях:
- Ресурс: назначенные роли применяются только к этому конкретному ресурсу.
- Группа ресурсов: назначенные роли применяются ко всем ресурсам, содержащимся в данной группе.
- Подписка: Назначенные роли применяются ко всем ресурсам, входящим в состав подписки.
В следующем примере показано, как назначать роли в области группы ресурсов, так как многие приложения управляют всеми связанными ресурсами Azure с помощью одной группы ресурсов.
Перейдите на страницу обзора группы ресурсов, содержащей приложение с управляемым удостоверением, назначенным системой.
Выберите Управление доступом (IAM) на панели навигации слева.
На странице управления доступом (IAM) выберите + Добавить в верхнем меню, а затем выберите Назначение роли, чтобы перейти на страницу Назначение роли.
На странице Добавление назначения ролей представлен вкладочный, многошаговый рабочий процесс для назначения ролей идентичностям. На начальной вкладке роли используйте поле поиска вверху, чтобы найти роль, которую вы хотите назначить личности.
Выберите роль из результатов и выберите Далее, чтобы перейти на вкладку Участники.
Для параметра Назначить доступ к выберите Управляемое удостоверение.
Для параметра "Члены" выберите + "Выбор участников", чтобы открыть панель "Выбор управляемых удостоверений".
На панели Выбор управляемых удостоверений используйте раскрывающиеся списки Подписка и Управляемое удостоверение, чтобы отфильтровать результаты поиска для ваших удостоверений. Используйте поле поиска Select, чтобы найти системную идентичность, которую вы включили для ресурса Azure, где размещено ваше приложение.
Определите личность и выберите Выбрать в нижней части панели, чтобы продолжить.
Выберите Проверить и назначить в нижней части страницы.
На вкладке "Окончательная проверка и назначение " выберите "Проверка и назначение" для завершения рабочего процесса.
Авторизация в службах Azure из вашего приложения
Библиотека Azure Identity предоставляет различные учетные данные — реализации , адаптированные для поддержки различных сценариев и потоков аутентификации Microsoft Entra. Так как управляемое удостоверение недоступно при локальном выполнении, следующие действия демонстрируют, какие учетные данные следует использовать в каком сценарии:
-
Локальная среда разработки: Используйте класс DefaultAzureCredential только во время локальной разработки для предварительно настроенной цепочки учетных данных.
DefaultAzureCredentialобнаруживает учетные данные пользователя из локального инструмента или интегрированной среды разработки, например Azure CLI или Visual Studio Code. Она также обеспечивает гибкость и удобство повторных попыток, время ожидания ответов и поддержку нескольких вариантов проверки подлинности. Посетите статью "Аутентификация в службах Azure во время локальной разработки", чтобы узнать больше. - Приложения, размещенные в Azure. Когда приложение запущено в Azure, используйте ManagedIdentityCredential , чтобы безопасно обнаружить управляемое удостоверение, настроенное для приложения. Указание этого точного типа учетных данных предотвращает неожиданное получение других доступных учетных данных.
Реализация кода
Добавьте пакет azure-identity в приложение, перейдя в каталог проекта приложения и выполнив следующую команду:
pip install azure-identity
Для обращения к службам Azure используются специализированные клиентские классы из различных клиентских библиотек Azure SDK. В следующем примере кода показано, как создать экземпляр учетных данных и использовать его с клиентом службы SDK Azure. В коде приложения выполните следующие действия для проверки подлинности с помощью управляемого удостоверения:
-
ManagedIdentityCredentialИмпортируйте класс изazure.identityмодуля. - Создайте объект
ManagedIdentityCredential. -
ManagedIdentityCredentialПередайте объект конструктору клиента Azure SDK.
В следующем примере демонстрируется проверка подлинности BlobServiceClient с помощью управляемого удостоверения, назначаемого системой:
from azure.identity import ManagedIdentityCredential
from azure.storage.blob import BlobServiceClient
# Authenticate using system-assigned managed identity
credential = ManagedIdentityCredential()
blob_service_client = BlobServiceClient(
account_url="https://<account-name>.blob.core.windows.net",
credential=credential
)
При локальной разработке можно использовать DefaultAzureCredential, который находит учетные данные из локальных средств разработчика. При развертывании в Azure переключитесь на ManagedIdentityCredential для рабочих сред.
import os
from azure.identity import DefaultAzureCredential, ManagedIdentityCredential
from azure.storage.blob import BlobServiceClient
# Use ManagedIdentityCredential in Azure, DefaultAzureCredential locally
if os.getenv("WEBSITE_HOSTNAME"):
credential = ManagedIdentityCredential()
else:
credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
account_url="https://<account-name>.blob.core.windows.net",
credential=credential
)