Отключение локальной аутентификации или аутентификации с использованием общего ключа доступа для Служебной шины Azure

Вы можете пройти проверку подлинности в ресурсах служебной шины Azure двумя способами:

  • Microsoft Entra ID
  • Подписи для общего доступа (SAS)

Идентификатор Microsoft Entra обеспечивает более высокую безопасность и простоту использования по сравнению с общими подписями доступа (SAS). Используя идентификатор Microsoft Entra, вам не нужно хранить маркеры в коде, что снижает потенциальные уязвимости системы безопасности. Используйте идентификатор Microsoft Entra с приложениями служебной шины Azure, когда это возможно.

В этой статье объясняется, как отключить проверку подлинности ключа SAS (или локальную проверку подлинности) и использовать только идентификатор Microsoft Entra для проверки подлинности.

Почему отключить локальную проверку подлинности?

Отключение локальной проверки подлинности (SAS-ключа) повышает безопасность пространства имен служебной шины несколькими способами:

  • Устраняет статические учетные данные. Ключи SAS — это давние общие секреты. Если ключ утечет, то любой, у кого он есть, может получить доступ к вашему пространству имен, пока вы не замените ключ вручную. Идентификатор Microsoft Entra использует кратковременные маркеры, которые автоматически обновляются.
  • Обеспечивает точное управление доступом. Политики SAS предоставляют широкие права (отправка, прослушивание сообщений, управление) на уровне пространства имен или сущности. Управление доступом на основе ролей (RBAC) Microsoft Entra позволяет назначать определенные роли (Azure Service Bus Data Sender, Azure Service Bus Data Receiver, Azure Service Bus Data Owner) отдельным пользователям, группам, субъектам-службам или управляемым удостоверениям.
  • Предоставляет журнал аудита. События проверки подлинности Microsoft Entra отображаются в журналах входа Microsoft Entra. Использование ключа SAS не создает сопоставимые записи аудита на уровне идентификации.
  • Поддерживает условный доступ. С помощью идентификатора Microsoft Entra можно применять такие политики, как многофакторная проверка подлинности, требования к доверенному устройству и ограничения расположения— ни один из которых недоступен с помощью ключей SAS.

Подсказка

Перед отключением локальной проверки подлинности обновите все приложения для проверки подлинности с помощью идентификатора Microsoft Entra. См. раздел действий по миграции далее в этой статье.

Отключение локальной проверки подлинности с помощью портала

В этом разделе вы узнаете, как использовать портал Azure для отключения локальной проверки подлинности.

  1. Перейдите в пространство имен служебной шины на портале Azure.

  2. В разделе "Основные сведения " на странице "Обзор " выберите "Включеналокальная проверка подлинности".

    Снимок экрана, показывающий страницу обзора пространства имен Service Bus с включенной локальной проверкой подлинности.

  3. На странице Локальная проверка подлинности выберите Отключенои нажмите кнопку ОК.

    Снимок экрана: выбор параметра

Отключение локальной проверки подлинности с помощью шаблона

Вы можете отключить локальную проверку подлинности для пространства имен Service Bus, установив значение свойства disableLocalAuth на true, как показано в следующих шаблонах.

@description('Name of the Service Bus namespace')
param namespaceName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: namespaceName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
  properties: {
    disableLocalAuth: true
  }
}

Отключение локальной проверки подлинности с помощью Azure CLI или PowerShell

Вы также можете отключить локальную проверку подлинности с помощью средств командной строки для существующего пространства имен.

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth true

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

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth false

Текущее состояние можно проверить, проверив disableLocalAuth свойство:

az servicebus namespace show \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --query disableLocalAuth

Обеспечение соблюдения с помощью политик Azure

Для принудительного применения на уровне арендатора или подписки используйте встроенную политику Azure Policy Service Bus пространства имен, где локальные методы аутентификации должны быть отключены (идентификатор политики: cfb11c26-f069-4c14-8e36-56c394dae5af).

Эта политика оценивает пространства имен Service Bus и отмечает любые из них, если disableLocalAuth установлено в false или не установлено. Его можно назначить на уровне группы управления, подписки или группы ресурсов.

Эффекты политики

При назначении политики выберите эффект, соответствующий вашим требованиям принудительного применения:

Эффект Поведение
Аудит (по умолчанию) Существующие пространства имен с поддержкой локальной проверки подлинности отображаются как несовместимые на панели мониторинга соответствия требованиям. Новые пространства имен по-прежнему разрешены.
Запретить Запрещает создание или обновление любого пространства имен с включенной локальной проверкой подлинности. Используйте этот эффект для обеспечения соответствия новым ресурсам.

Назначьте политику

  1. На портале Azure перейдите к политики>определений.
  2. Поиск пространств имен служебной шины должен иметь отключенные локальные методы проверки подлинности.
  3. Выберите определение политики и нажмите кнопку "Назначить".
  4. Выберите область (группу управления, подписку или группу ресурсов).
  5. На вкладке "Параметры" выберите нужный эффект (аудит или запрет).
  6. Выберите Просмотр и создание, а затем Создать.

После назначения пространства имен, которые не соответствуют Контрольным требованиям, они появляются в разделе Нарушения политикиСоответствие. Вы можете создать задачу исправления для пространств имен, которые нуждаются в обновлении.

Снимок экрана: политика Azure для отключения локальной проверки подлинности.

Миграция из SAS в идентификатор Microsoft Entra

Перед отключением локальной проверки подлинности обновите все приложения, которые подключаются к пространству имен служебной шины, чтобы использовать идентификатор Microsoft Entra, а не строки подключения или маркеры SAS. Выполните следующие действия:

Шаг 1. Назначение ролей RBAC

Назначьте соответствующую роль данных службе Service Bus Azure каждому удостоверению (пользователю, служебному принципалу или управляемому удостоверению), которому требуется доступ.

Роль Разрешение
Azure Service Bus Data Sender Отправка сообщений в очереди и разделы
Azure Service Bus Data Receiver Получение сообщений из очередей и подписок
Azure Service Bus Data Owner Полный доступ (отправка, получение, управление объектами)

Роли можно назначать с помощью портала Azure, Azure CLI или Azure PowerShell. Подробные инструкции см. в статье "Назначение ролей Azure" с помощью портала Azure.

Шаг 2. Обновление кода приложения

Замените аутентификацию на основе строки подключения на DefaultAzureCredential (или другие учетные данные Microsoft Entra) из библиотеки Azure Identity. В следующих примерах показано изменение для каждого языка:

// Before (connection string):
await using ServiceBusClient client = new("<connection-string>");

// After (Microsoft Entra ID):
await using ServiceBusClient client = new(
    "<your-namespace>.servicebus.windows.net",
    new DefaultAzureCredential());

Для получения дополнительных сведений о каждом SDK см. в следующей статье.

Шаг 3. Тестирование с включенными методами проверки подлинности

Разверните обновленное приложение, пока локальная проверка подлинности по-прежнему включена. Проверьте следующее:

  • Вы успешно отправляете и получаете сообщения.
  • Журналы приложений показывают получение токена Microsoft Entra, а не SAS.
  • Ошибки, связанные с проверкой подлинности, не отображаются.

Шаг 4. Отключение локальной проверки подлинности

После подтверждения работы всех приложений с идентификатором Microsoft Entra отключите локальную проверку подлинности с помощью любого из методов, описанных ранее в этой статье (портал, CLI, PowerShell или шаблон).

Шаг 5. Очистка политик SAS (необязательно)

После отключения локальной проверки подлинности существующие политики SAS в пространстве имен остаются, но не могут использоваться для создания функциональных маркеров. Их можно оставить на месте или удалить для более чистой конфигурации. Удаление неиспользуемых политик уменьшает область атаки, если кто-то случайно повторно включает локальную проверку подлинности.

Дополнительные сведения о Microsoft Entra ID и проверке подлинности SAS см. в следующих статьях: