Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Управляемые удостоверения для ресурсов Azure позволяют приложению проходить проверку подлинности в Служебная шина Azure без хранения учетных данных в коде. Azure автоматически управляет удостоверением и его учетными данными для вас.
Хранение учетных данных в коде создает риски безопасности и затраты на обслуживание. Управляемые удостоверения устраняют эти проблемы, предоставляя автоматическое управление учетными данными с помощью Microsoft Entra ID.
В этой статье показано, как настроить аутентификацию управляемого удостоверения для служебная шина, чтобы ваше приложение могло безопасно отправлять и получать сообщения без жестко закодированных учетных данных.
Необходимые условия
Чтобы использовать управляемые удостоверения с Служебная шина Azure, вам потребуется:
Подписка Azure. Если у вас еще нет аккаунта, создайте бесплатную учетную запись, прежде чем начать.
Пространство имен служебной шины Azure. Чтобы создать его, см. раздел "Создание пространства имен служебной шины".
Управляемое удостоверение, активированное на вычислительном ресурсе Azure. See:
Вы можете отключить проверку подлинности ключа локальной или общей подписи доступа (SAS) для пространства имен служебной шины и разрешить только проверку подлинности Microsoft Entra. Пошаговые инструкции см. в разделе Отключение локальной проверки подлинности.
Назначьте роль служебная шина управляемому удостоверению
Microsoft Entra разрешает доступ к защищенным ресурсам с помощью управления доступом на основе ролей Azure (RBAC). Служебная шина Azure предоставляет встроенные роли Azure, охватывающие общие наборы разрешений для доступа к сущностям служебной шины. Можно также определить пользовательские роли.
В следующей таблице перечислены встроенные роли Azure для авторизации доступа к пространству имен служебной шины:
| Роль | Описание |
|---|---|
| Владелец данных служебной шины Azure | Полный доступ к пространству имен служебная шина и его сущностям (очереди, темы, подписки и фильтры) |
| Отправитель данных Служебной шины Azure | Возможность отправки сообщений в очереди и топики служебная шина |
| Приемник данных служебной шины Azure | Возможность получать сообщения из очередей и подписок служебной шины |
Общие сведения о уровнях области RBAC служебная шина
Перед назначением роли Azure определите область доступа, необходимую управляемому удостоверению. Предоставьте только самые узкие возможные области.
В следующем списке описаны уровни, на которых вы можете определять доступ к ресурсам служебная шина, начиная с самой узкой области.
- Очередь, тема или подписка на тему: назначение ролей применяется только к определенной сущности обмена сообщениями.
- Пространство имён службы шины: Назначение ролей охватывает всю топологию службы шины в пространстве имён.
- Группа ресурсов: назначение ролей применяется ко всем ресурсам службы служебная шина в данной группе ресурсов.
- подписка Azure. Назначение ролей применяется ко всем ресурсам служебная шина во всех группах ресурсов в подписке Azure.
Для распространения назначений ролей Azure может потребоваться до пяти минут.
Назначение роли управляемой идентичности в портале Azure
Перейдите в пространство имен служебная шина, очередь или тему.
В меню слева выберите элемент управления доступом (IAM).
Выберите Добавить>Добавить назначение ролей.
На вкладке "Роль" выберите соответствующую роль данных служебной шины.
На вкладке "Участники" выберите "Управляемое удостоверение">Выбрать участников.
Выберите управляемое удостоверение для ресурса Azure.
Выберите кнопку Проверить + назначить.
Дополнительные сведения см. в разделе Назначение ролей Azure с помощью портала Azure.
Назначение роли с помощью Azure CLI
Портал Azure не поддерживает назначение управляемых удостоверений ролям служебная шина на уровне подписки на темы. Используйте команду Azure CLI az role assignment create, чтобы назначить роль в любой области:
az role assignment create \
--role $service_bus_role \
--assignee $assignee_id \
--scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription
Дополнительные сведения о том, как определяются встроенные роли, см. в статье "Общие сведения о определениях ролей Azure". Дополнительные сведения о создании настраиваемых ролей Azure см. в разделе Настраиваемые роли Azure.
Примечание.
Если исходная служба или приложение не перезапускаются после удаления управляемого удостоверения из роли RBAC в служебная шина, исходное приложение может продолжать отправлять или получать сообщения в этой служебной шине до истечения срока действия токена. (Срок действия маркера по умолчанию — 24 часа.) Это поведение выполняется по проектированию.
После удаления управляемого удостоверения источника из роли RBAC перезапустите исходное приложение или службу, чтобы маркер сразу стал недействительным и предотвратить отправку или получение сообщений из объекта службы шины.
Подключение к служебная шина с помощью управляемой идентификации в SDK Azure
Пакеты SDK Azure для .NET, Java, JavaScript и Python поддерживают проверку подлинности управляемого удостоверения с помощью служебная шина. В следующем примере показано, как подключиться с помощью пакета SDK для .NET.
В .NET объект ServiceBusClient инициализируется с помощью конструктора, который принимает полное пространство имен и учетные данные токена (TokenCredential).
DefaultAzureCredential наследуется от TokenCredential, который автоматически использует управляемое удостоверение, настроенное для приложения. Учетные данные токена автоматически обрабатывают контекст управляемого удостоверения в служебная шина и рукопожатие авторизации. Это более простая модель, чем использование SAS.
var client = new ServiceBusClient("contoso.servicebus.windows.net", new DefaultAzureCredential());
Отправка и получение сообщений как обычно с помощью ServiceBusSender и ServiceBusReceiver или ServiceBusProcessor.
Пошаговые инструкции по отправке и получению сообщений с помощью управляемого удостоверения см. в следующих кратких руководствах. В этих кратких руководствах содержится код для использования служебного принципала для отправки и получения сообщений, но код одинаковый при использовании управляемого удостоверения.
Примечание.
Управляемые удостоверения работают только в среде Azure, в службе приложений Azure, виртуальных машинах Azure и масштабируемых наборах. Для приложений .NET библиотека Microsoft.Azure.Services.AppAuthentication (используемая пакетом NuGet служебная шина) предоставляет абстракцию по этому протоколу и поддерживает локальную разработку. Вы можете протестировать код локально с помощью учетной записи пользователя из Visual Studio, Azure CLI или Microsoft Entra интегрированной проверки подлинности. Дополнительные сведения см. в клиентской библиотеке App Authentication для .NET.