Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Идентификатор Microsoft Entra, используемый в Azure Key Vault, обеспечивает надежный и безопасный подход для проверки подлинности приложений как в службах Azure, так и на сторонних платформах, требующих ключей доступа или учетных данных. Это сочетание устраняет необходимость встраивания секретов в код приложения, вместо этого полагается на управляемые удостоверения, управление доступом на основе ролей (RBAC) и централизованное управление секретами через Key Vault. Такой подход упрощает управление удостоверениями и повышает уровень безопасности в облачных средах.
В этом пошаговом руководстве рассматриваются эти механизмы проверки подлинности с помощью практического примера, предоставленного в репозитории GitHub: github.com/Azure-Samples/python-integrated-authentication.
В примере показано, как приложение Python может:
Проверка подлинности в Azure с использованием DefaultAzureCredential
Доступ к секретам Azure Key Vault без хранения учетных данных
Безопасное взаимодействие с другими службами Azure, такими как служба хранилища Azure, Cosmos DB и многое другое
Эта статья является частью серии, которая предоставляет подробное пошаговое руководство по проверке подлинности приложения Python с помощью Microsoft Entra ID, Azure Key Vault и хранилища очередей Azure, используя библиотеку Azure Python SDK azure-identity.
Часть 1. Предыстория
Хотя многие службы Azure полагаются исключительно на управление доступом на основе ролей (RBAC), другие требуют доступа через секреты или ключи. К таким службам относятся служба хранилища Azure, базы данных, средства Foundry, Key Vault и Центры событий.
При создании облачных приложений, взаимодействующих с этими службами, разработчики могут использовать портал Azure, CLI или PowerShell для создания и настройки ключей доступа для конкретной службы. Эти ключи привязаны к определенным политикам доступа, чтобы предотвратить несанкционированный доступ. Однако эта модель требует от вашего приложения явного управления ключами и прохождения проверки подлинности отдельно с каждой службой, что делает процесс одновременно утомительным и подверженным ошибкам.
Встраивание секретов непосредственно в код или их хранение на компьютерах разработчиков несет риск разоблачения этих секретов.
- Управление исходным кодом
- Небезопасные локальные среды
- Случайные журналы или экспорт конфигурации
Azure предлагает две ключевые службы для повышения безопасности и упрощения проверки подлинности:
Azure Key Vault Azure Key Vault предоставляет безопасное облачное хранилище для секретов, включая ключи доступа, строки подключения и сертификаты. Извлекая секреты из Key Vault только во время выполнения, приложения не будут предоставлять конфиденциальные данные в исходном коде или файлах конфигурации.
С помощью управляемых удостоверений Microsoft Entra приложение может пройти проверку подлинности один раз с помощью идентификатора Microsoft Entra. Оттуда он может получить доступ к другим службам Azure, включая Key Vault, без непосредственного управления учетными данными.
Этот подход обеспечивает следующее:
- Код без учетных записей (без секретов в системе контроля версий)
- Простая интеграция со службами Azure
- Согласованность среды: один и тот же код выполняется локально и в облаке с минимальной конфигурацией
В этом пошаговом руководстве показано, как использовать управляемое удостоверение Microsoft Entra и Key Vault вместе в одном приложении. Используя идентификатор Microsoft Entra и Key Vault вместе, приложение никогда не должно проходить проверку подлинности с помощью отдельных служб Azure, а также легко и безопасно получать доступ к любым ключам, необходимым для сторонних служб.
Это важно
В этой статье используется общий универсальный термин "ключ" для ссылки на то, что хранится как "секреты" в Azure Key Vault, например ключ доступа для REST API. Это использование не следует путать с управлением криптографическими ключами Key Vault, которое является отдельной функцией от секретов Key Vault.
Пример сценария облачного приложения
Чтобы лучше понять процесс проверки подлинности Azure, рассмотрим следующий сценарий: веб-приложение Flask развертывается в Службе приложений Azure. Он предоставляет общедоступную конечную точку API без проверки подлинности, которая возвращает данные JSON в ответ на HTTP-запросы.
Чтобы создать ответ, API вызывает сторонний API, требующий ключа доступа. Вместо хранения этого ключа в файлах кода или конфигурации приложение безопасно извлекает его во время выполнения из Azure Key Vault с помощью управляемого удостоверения Microsoft Entra.
Прежде чем вернуть ответ клиенту, приложение записывает сообщение в очередь службы хранилища Azure для асинхронной обработки. Сообщение может представлять задачу, журнал или сигнал, хотя нижестоящая обработка не является фокусом этого сценария.
Замечание
Хотя общедоступные конечные точки API обычно защищены собственными ключами доступа или механизмами проверки подлинности, в этом пошаговом руководстве предполагается, что конечная точка открыта и не выполняет проверку подлинности.
Это упрощение помогает изолировать внутренние требования к проверке подлинности приложения, такие как доступ к Azure Key Vault и служба хранилища Azure , от любых проблем проверки подлинности, связанных с внешними клиентами.
Сценарий фокусируется исключительно на поведении приложения и не демонстрирует или не включает проверку подлинности внешнего вызывающего с конечным узлом.