Autoryzowanie dostępu za pomocą identyfikatora Entra firmy Microsoft dla usługi Azure SignalR Service

Usługa Azure SignalR Service obsługuje identyfikator Entra firmy Microsoft do autoryzowania żądań do swoich zasobów. Za pomocą identyfikatora Entra firmy Microsoft możesz użyć kontroli dostępu opartej na rolach (RBAC), aby udzielić uprawnień podmiotowi zabezpieczeń. Podmiot zabezpieczeń to użytkownik/grupa zasobów, aplikacja lub jednostka usługi, taka jak tożsamości przypisane przez system i tożsamości przypisane przez użytkownika.

Identyfikator Entra firmy Microsoft uwierzytelnia podmiot zabezpieczeń i zwraca token OAuth 2.0. Token jest następnie używany do autoryzowania żądania względem zasobu usługi Azure SignalR Service.

Autoryzowanie żądań względem usługi Azure SignalR Service przy użyciu identyfikatora Entra firmy Microsoft zapewnia doskonałe zabezpieczenia i łatwość użycia w porównaniu z autoryzacją klucza dostępu. Zdecydowanie zalecamy używanie identyfikatora Entra firmy Microsoft do autoryzowania, jeśli jest to możliwe, ponieważ zapewnia dostęp z minimalnymi wymaganymi uprawnieniami.

Ważne

Wyłączenie uwierzytelniania lokalnego może mieć następujące konsekwencje:

  • Bieżący zestaw kluczy dostępu jest trwale usuwany.
  • Tokeny podpisane przy użyciu bieżącego zestawu kluczy dostępu stają się niedostępne.

Omówienie identyfikatora Entra firmy Microsoft

Gdy podmiot zabezpieczeń próbuje uzyskać dostęp do zasobu usługi Azure SignalR Service, żądanie musi być autoryzowane. Uzyskiwanie dostępu do zasobu przy użyciu identyfikatora Entra firmy Microsoft wymaga wykonania dwóch kroków:

  1. Identyfikator entra firmy Microsoft uwierzytelnia podmiot zabezpieczeń, a następnie zwraca token OAuth 2.0.
  2. Token jest przekazywany jako część żądania do zasobu usługi Azure SignalR Service w celu autoryzowania żądania.

Uwierzytelnianie po stronie klienta przy użyciu identyfikatora Entra firmy Microsoft

Gdy używasz klucza dostępu, klucz jest udostępniany między serwerem aplikacji (lub aplikacją funkcji) a zasobem usługi Azure SignalR Service. Usługa Azure SignalR Service uwierzytelnia żądanie połączenia klienta przy użyciu klucza współużytkowanego.

Jeśli używasz identyfikatora Entra firmy Microsoft, nie ma klucza współużytkowanego. Zamiast tego usługa Azure SignalR Service używa tymczasowego klucza dostępu do tokenów podpisywania używanych w połączeniach klienta. Przepływ pracy zawiera cztery kroki:

  1. Podmiot zabezpieczeń wymaga tokenu OAuth 2.0 z identyfikatora Entra firmy Microsoft w celu uwierzytelnienia się.
  2. Podmiot zabezpieczeń wywołuje interfejs API uwierzytelniania usługi SignalR, aby uzyskać tymczasowy klucz dostępu.
  3. Podmiot zabezpieczeń podpisuje token klienta z tymczasowym kluczem dostępu dla połączeń klienta podczas negocjacji.
  4. Klient używa tokenu klienta do nawiązywania połączenia z zasobami usługi Azure SignalR Service.

Tymczasowy klucz dostępu wygaśnie za 90 minut. Zalecamy uzyskanie nowego i obracanie starego raz na godzinę.

Przepływ pracy jest wbudowany w zestaw SDK usługi Azure SignalR Service dla serwerów aplikacji.

Przypisywanie ról platformy Azure na potrzeby praw dostępu

Microsoft Entra ID autoryzuje prawa dostępu do zabezpieczonych zasobów za pośrednictwem kontroli dostępu opartej na rolach platformy Azure. Usługa Azure SignalR Service definiuje zestaw wbudowanych ról platformy Azure, które obejmują typowe zestawy uprawnień na potrzeby uzyskiwania dostępu do zasobów usługi Azure SignalR Service. Możesz również zdefiniować role niestandardowe na potrzeby dostępu do zasobów usługi Azure SignalR Service.

Zakres zasobu

Może być konieczne określenie zakresu dostępu, który podmiot zabezpieczeń powinien mieć przed przypisaniem dowolnej roli RBAC platformy Azure do podmiotu zabezpieczeń. Zalecamy przyznanie tylko najwęższego możliwego zakresu. Role RBAC platformy Azure zdefiniowane w szerszym zakresie są dziedziczone przez pod nimi zasoby.

Dostęp do zasobów usługi Azure SignalR Service można ograniczyć na następujących poziomach, począwszy od najwęższego zakresu.

Scope opis
Pojedynczy zasób Dotyczy tylko zasobu docelowego.
Grupa zasobów Dotyczy wszystkich zasobów w grupie zasobów.
Subskrypcja Dotyczy wszystkich zasobów w subskrypcji.
Grupa zarządzania Dotyczy wszystkich zasobów w subskrypcjach uwzględnionych w grupie zarządzania.

Wbudowane role platformy Azure dla zasobów usługi Azure SignalR Service

Rola opis Przypadek użycia
SignalR App Server Dostęp do interfejsu API tworzenia połączenia protokołu WebSocket i interfejsów API uwierzytelniania. Najczęściej używane dla serwera aplikacji.
Właściciel usługi SignalR Service Pełny dostęp do wszystkich interfejsów API płaszczyzny danych, w tym interfejsów API REST, interfejsu API tworzenia połączenia protokołu WebSocket i interfejsów API uwierzytelniania. Służy do trybu bezserwerowego autoryzacji z identyfikatorem Entra firmy Microsoft, ponieważ wymaga zarówno uprawnień interfejsu API REST, jak i uprawnień interfejsu API uwierzytelniania.
Właściciel interfejsu API REST usługi SignalR Pełny dostęp do interfejsów API REST płaszczyzny danych. Często używane do pisania narzędzia, które zarządza połączeniami i grupami, ale nie powoduje nawiązywania połączeń ani wywoływania interfejsów API uwierzytelniania.
Czytnik interfejsu API REST usługi SignalR Dostęp tylko do odczytu do interfejsów API REST płaszczyzny danych. Często używane do pisania narzędzia do monitorowania, które wywołuje tylko interfejsy API REST tylko do odczytu w usłudze Azure SignalR Service.

Następne kroki