Autorizzare l'accesso con Microsoft Entra ID per Servizio Azure SignalR

Servizio Azure SignalR supporta l'ID Microsoft Entra per autorizzare le richieste alle risorse. Con Microsoft Entra ID è possibile usare il controllo degli accessi in base al ruolo per concedere le autorizzazioni a un'entità di sicurezza. Un'entità di sicurezza è un gruppo di utenti/risorse, un'applicazione o un'entità servizio, ad esempio identità assegnate dal sistema e identità assegnate dall'utente.

Microsoft Entra ID autentica l'entità di sicurezza e restituisce un token OAuth 2.0. Il token viene quindi usato per autorizzare una richiesta alla risorsa Servizio Azure SignalR.

L'autorizzazione delle richieste a Servizio Azure SignalR tramite Microsoft Entra ID offre maggiore sicurezza e facilità d'uso rispetto all'autorizzazione della chiave di accesso. È consigliabile usare Microsoft Entra ID per l'autorizzazione quando possibile, perché garantisce l'accesso con i privilegi minimi necessari.

Importante

La disabilitazione dell'autenticazione locale può avere le conseguenze seguenti:

  • Il set corrente di chiavi di accesso viene eliminato definitivamente.
  • I token firmati con il set corrente di chiavi di accesso non sono più disponibili.

Panoramica di Microsoft Entra ID

Quando un'entità di sicurezza tenta di accedere a una risorsa Servizio Azure SignalR, la richiesta deve essere autorizzata. L'uso di Microsoft Entra ID per ottenere l'accesso a una risorsa richiede due passaggi:

  1. Microsoft Entra ID autentica l'entità di sicurezza e quindi restituisce un token OAuth 2.0.
  2. Il token viene passato come parte di una richiesta alla risorsa Servizio Azure SignalR per autorizzare la richiesta.

Autenticazione lato client con Microsoft Entra ID

Quando si usa una chiave di accesso, la chiave viene condivisa tra il server app (o l'app per le funzioni) e la risorsa Servizio Azure SignalR. Servizio Azure SignalR autentica la richiesta di connessione client usando la chiave condivisa.

Quando si usa Microsoft Entra ID, non è presente alcuna chiave condivisa. Al contrario, Servizio Azure SignalR usa una chiave di accesso temporanea per la firma dei token usati nelle connessioni client. Il flusso di lavoro contiene quattro passaggi:

  1. L'entità di sicurezza richiede un token OAuth 2.0 da Microsoft Entra ID per autenticarsi.
  2. L'entità di sicurezza chiama l'API di autenticazione signalR per ottenere una chiave di accesso temporanea.
  3. L'entità di sicurezza firma un token client con la chiave di accesso temporanea per le connessioni client durante la negoziazione.
  4. Il client usa il token client per connettersi alle risorse di Servizio Azure SignalR.

La chiave di accesso temporanea scade tra 90 minuti. Ti consigliamo di ottenere uno nuovo e ruotare il vecchio una volta all'ora.

Il flusso di lavoro è integrato nell'SDK di Servizio Azure SignalR per i server app.

Assegnare ruoli di Azure per i diritti di accesso

Microsoft Entra ID autorizza i diritti di accesso alle risorse protette tramite il controllo degli accessi in base al ruolo di Azure. Servizio Azure SignalR definisce un set di ruoli predefiniti di Azure che includono set comuni di autorizzazioni per l'accesso alle risorse Servizio Azure SignalR. È anche possibile definire ruoli personalizzati per l'accesso alle risorse di Servizio Azure SignalR.

Ambito risorsa

Potrebbe essere necessario determinare l'ambito di accesso che l'entità di sicurezza deve avere prima di assegnare qualsiasi ruolo controllo degli accessi in base al ruolo di Azure a un'entità di sicurezza. È consigliabile concedere solo l'ambito più ristretto possibile. I ruoli controllo degli accessi in base al ruolo di Azure definiti in un ambito più ampio vengono ereditati dalle risorse sottostanti.

È possibile definire l'ambito dell'accesso alle risorse di Servizio Azure SignalR ai livelli seguenti, a partire dall'ambito più ristretto.

Ambito Descrizione
Singola risorsa Si applica solo alla risorsa di destinazione.
Gruppo di risorse Si applica a tutte le risorse in un gruppo di risorse.
Subscription Si applica a tutte le risorse di una sottoscrizione.
Gruppo di gestione Si applica a tutte le risorse nelle sottoscrizioni incluse in un gruppo di gestione.

Ruoli predefiniti di Azure per le risorse di Servizio Azure SignalR

Ruolo Descrizione Caso d'uso
SignalR App Server Accesso all'API di creazione della connessione WebSocket e alle API di autenticazione. Usato più comunemente per un server app.
proprietario di Servizio SignalR Accesso completo a tutte le API del piano dati, incluse le API REST, l'API di creazione della connessione WebSocket e le API di autenticazione. Usare per la modalità serverless per l'autorizzazione con Microsoft Entra ID, perché richiede sia le autorizzazioni dell'API REST che le autorizzazioni api di autenticazione.
Proprietario dell'API REST di SignalR Accesso completo alle API REST del piano dati. Spesso usato per scrivere uno strumento che gestisce connessioni e gruppi, ma non esegue connessioni o chiama le API di autenticazione.
Lettore API REST SignalR Accesso in sola lettura alle API REST del piano dati. Comunemente usato per scrivere uno strumento di monitoraggio che chiama solo Servizio Azure SignalR API REST di sola lettura del piano dati.

Passaggi successivi