Аутентификация с управляемыми удостоверениями для Центры событий Azure

Управляемая идентичность — это идентичность в Microsoft Entra ID, которую Azure управляет за вас, поэтому приложение может аутентифицироваться в сервисах, поддерживающих аутентификацию Microsoft Entra, без хранения учетных данных. Центры событий Azure поддерживает аутентификацию Microsoft Entra с управляемыми идентификаторами для ресурсов Azure, что позволяет приложениям, работающим в Azure, подключаться к Event Hubs без встраивания строк соединения или ключей доступа в код или конфигурацию.

Когда вы используете управляемую идентичность вместе с аутентификацией Microsoft Entra, приложения, работающие в сервисах, таких как Виртуальные машины Azure, Функции Azure, Служба приложений Azure и Масштабируемые наборы виртуальных машин может получить доступ к данным Event Hubs с учётными данными, которые Azure автоматически предоставляет и ротирует. Такой подход устраняет риск утечки ключей и снижает операционные нагрузки на управление учетными данными.

Для пошагового примера см. Доступ к Центры событий Azure с виртуальной машины с помощью управляемой идентификации.

Как работает проверка подлинности управляемого удостоверения

Доступ к ресурсу Event Hubs через управляемую идентичность — это двухэтапный процесс:

  • Аутентификация: управляемая идентичность запрашивает токен OAuth 2.0 из Microsoft Entra ID. Azure автоматически предоставляет идентификатор в зависимости от вычислительной среды, где работает код, поэтому никакой секрет не хранится и не передаётся в приложении.
  • Авторизация: Токен предъявляется службе Event Hubs, которая предоставляет доступ на основе ролей ролевого управления доступом Azure (RBAC), назначенных удостоверению.

Для полного описания процесса аутентификации и авторизации см. раздел «Авторизовать доступ к ресурсам Центры событий Azure с использованием Microsoft Entra ID».

Типы управляемых удостоверений

Event Hubs работает с обоими типами управляемых идентичностей:

  • Управляемая идентичность, назначенная системой: Активирована непосредственно на ресурсе Azure, например, на виртуальной машине или приложении App Service. Его жизненный цикл привязан к этому ресурсу, и только этот ресурс может использовать его для запроса токенов.
  • Управляемая личность, назначенная пользователем: создаётся как отдельный ресурс Azure и назначена одному или нескольким ресурсам Azure, чтобы несколько рабочих нагрузок могли использовать одну и ту же идентичность.

Чтобы узнать больше о двух типах и о том, когда выбирать каждый из них, смотрите раздел «Управляемые типы идентичности». Список сервисов, поддерживающих управляемые идентичности, см. раздел «Сервисы, поддерживающие управляемые идентичности для ресурсов Azure».

Встроенные роли Azure для Event Hubs

После включения управляемой идентичности назначите ей встроенную роль Azure, которая определяет права на данные Event Hubs. Azure предоставляет следующие встроенные роли для авторизации доступа к данным Event Hubs с Microsoft Entra ID:

Роль Description
Владелец данных Центров событий Azure Предоставляет полный доступ к ресурсам Event Hubs.
Отправитель данных Центров событий Azure Даёт разрешение отправлять события в ресурсы Event Hubs.
Приемник данных Центров событий Azure Даёт разрешение на получение событий из ресурсов Event Hubs.

Вы можете назначить роль на уровне потребительской группы, центра событий, пространства имён, ресурсной группы или подписки. Предоставляйте самый узкий формат, который соответствует требованиям приложения. Полный список областей действия и сведения о ролях см. в Azure built-in roles for Центры событий Azure. Чтобы назначить роль на портале Azure, см. статью Назначение ролей Azure с помощью портала Azure.

Поведение истечения токена

Когда вы удаляете управляемую идентичность из роли RBAC в Event Hubs, изменение не вступает в силу сразу для запускающегося приложения. Если исходный сервис или приложение не перезагружаются, оно может продолжать отправлять события или получать события из хаба событий до истечения срока действия токена. Стандартная действительность токена — 24 часа. Такое поведение предусмотрено программой.

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

Поддержка SDK клиента

Клиентские библиотеки Azure SDK получают за вас токен управляемого удостоверения с помощью DefaultAzureCredential, который автоматически обнаруживает управляемое удостоверение, доступное в среде размещения. Вы передаёте учетные данные в EventHubProducerClient, чтобы отправлять события, и в EventHubConsumerClient, чтобы получать события, не указывая строку подключения или ключ.

var credential = new DefaultAzureCredential();

// Send events with a managed identity.
var producerClient = new EventHubProducerClient(
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

// Receive events with a managed identity.
var consumerClient = new EventHubConsumerClient(
    EventHubConsumerClient.DefaultConsumerGroupName,
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

Установите из NuGet последний пакет Azure.Messaging.EventHubs, чтобы использовать этих клиентов. Примеры, готовые к запуску, см.:

Центры мероприятий Apache Kafka

Приложения Apache Kafka могут отправлять события и получать события из Центры событий Azure, используя управляемую идентичность с OAuth. Для примера Java см. раздел Event Hubs for Kafka: send and receive messages using managed identity OAuth.