Авторизация доступа с помощью идентификатора 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 для серверов приложений.

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

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

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

Возможно, необходимо определить область доступа, который должен иметь субъект безопасности, прежде чем назначить любую роль Azure RBAC субъекту безопасности. Рекомендуется предоставить только самые узкие область. Роли RBAC Azure, определенные в более широкой области, наследуются охватываемыми ресурсами.

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

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

Встроенные роли Azure для Служба Azure SignalR ресурсов

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

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