Идентификатор Microsoft Entra для службы Azure SignalR

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

Идентификатор Microsoft Entra проверяет подлинность субъекта безопасности и возвращает маркер OAuth 2.0. Затем токен используется для авторизации запроса к ресурсу Azure SignalR службы.

Авторизация запросов к Служба Azure SignalR с помощью идентификатора Microsoft Entra обеспечивает более высокую безопасность и удобство использования по сравнению с авторизацией ключа доступа. Настоятельно рекомендуется использовать идентификатор Microsoft Entra для авторизации по возможности, так как он обеспечивает доступ с минимальными необходимыми привилегиями.

Внимание

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

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

Обзор идентификатора Microsoft Entra

Когда субъект безопасности пытается получить доступ к ресурсу Служба Azure SignalR, запрос должен быть авторизован. Использование идентификатора Microsoft Entra для получения доступа к ресурсу требует двух шагов:

  1. Идентификатор Microsoft Entra проверяет подлинность субъекта безопасности, а затем возвращает маркер OAuth 2.0.
  2. Маркер передается в рамках запроса к ресурсу службы Azure SignalR для авторизации запроса.

Проверка подлинности на стороне клиента с помощью идентификатора Microsoft Entra

При использовании ключа доступа ключ используется между сервером приложений (или приложением-функцией) и ресурсом Служба Azure SignalR. Служба Azure SignalR выполняет проверку подлинности запроса на подключение клиента с помощью общего ключа.

При использовании идентификатора Microsoft Entra нет общего ключа. Вместо этого Служба Azure SignalR использует временный ключ доступа для подписывания маркеров, используемых в клиентских подключениях. Рабочий процесс содержит четыре шага:

  1. Для аутентификации субъект безопасности требует токен OAuth 2.0 от Microsoft Entra ID.
  2. Субъект безопасности вызывает API проверки подлинности SignalR, чтобы получить временный ключ доступа.
  3. Субъект безопасности подписывает токен клиента временным ключом доступа для клиентских подключений во время согласования.
  4. Клиент использует маркер клиента для подключения к ресурсам службы Azure SignalR.

Срок действия временного ключа доступа истекает через 90 минут. Рекомендуем раз в час заменять старый на новый.

Рабочий процесс построен в SDK службы Azure SignalR для серверов приложений.

Межтенантный доступ при использовании идентификатора Microsoft Entra

В некоторых случаях сервер и ресурс Azure SignalR могут не находиться в одном клиенте из-за проблем безопасности.

Мультитенантные приложения могут помочь вам в этом сценарии.

Если вы уже зарегистрировали одноарендное приложение, ознакомьтесь с преобразованием одноарендного приложения в многоарендное.

После регистрации мультитенантного приложения в вашем tenantA необходимо развернуть его как корпоративное приложение в вашем tenantB.

Создание корпоративного приложения из мультиарендного приложения в Microsoft Entra ID

Приложение, зарегистрированное в вашем tenantA, и корпоративное приложение, развернутое в вашем tenantB, имеют один и тот же идентификатор приложения (клиента).

Назначение ролей Azure для предоставления прав доступа

Идентификатор Microsoft Entra разрешает доступ к защищенным ресурсам через Azure RBAC. Служба Azure SignalR определяет набор встроенных ролей Azure, охватывающих общие наборы разрешений для доступа к ресурсам Служба Azure SignalR. Вы также можете определить пользовательские роли для доступа к ресурсам Служба Azure SignalR.

Область ресурса

Перед назначением ролей Azure RBAC субъекту безопасности необходимо определить соответствующую область доступа. Мы советуем предоставлять наиболее ограниченную область, необходимую для минимизации ненужных разрешений. Помните, что роли Azure RBAC, назначенные на более высокой или более широкой области, автоматически наследуются ресурсами, вложенными в эту область.

Доступ к ресурсам Служба Azure SignalR можно ограничить на следующих уровнях, начиная с самой узкой области.

Scope Описание
Отдельный ресурс Применяется только к целевому ресурсу.
Группа ресурсов Применяется ко всем ресурсам в группе ресурсов.
Подписка Применяется ко всем ресурсам в подписке.
Группа управления Применяется ко всем ресурсам в подписках, включенных в группу управления.

Встроенные роли Azure для ресурсов Azure SignalR Service

Роль Описание Вариант использования
Сервер приложений SignalR Доступ к API создания подключения сервера и создания ключей. Чаще всего используется для сервера приложений с ресурсом Azure SignalR в режиме по умолчанию .
Владелец службы SignalR Полный доступ ко всем API уровня данных, включая REST API, создание подключений к серверу и API генерации ключей и токенов. Для выполнения переговоров сервера с ресурсом Azure SignalR в бессерверном режиме, так как для этого требуются разрешения REST API и разрешения API проверки подлинности.
Владелец REST API SignalR Полный доступ к REST API плоскости данных. Для использования Azure SignalR Management SDK для управления подключениями и группами, но не для выполнения подключений к серверу или обработки запросов на согласование.
Средство чтения REST API SignalR Доступ только для чтения к REST API на плоскости данных. Используйте его при разработке средства мониторинга, которое вызывает REST API только для чтения.

Следующие шаги