Autorizzazione dell'accesso alle risorse di Hub eventi tramite firme di accesso condiviso

Una firma di accesso condiviso consente di concedere l'accesso limitato alle risorse nello spazio dei nomi di Hub eventi. La firma di accesso condiviso protegge l'accesso alle risorse di Hub eventi in base alle regole di autorizzazione. Queste regole vengono configurate in uno spazio dei nomi o in un hub eventi. Questo articolo offre una panoramica del modello di firma di accesso condiviso ed esamina le procedure consigliate per la firma di accesso condiviso.

Nota

Questo articolo tratta dell'utorizzazione dell'accesso alle risorse di Hub eventi tramite firme di accesso condiviso. Per informazioni sull'autenticazione dell'accesso alle risorse di Hub eventi tramite firma di accesso condiviso, vedere Eseguire l'autenticazione con firma di accesso condiviso.

Che cosa sono le firme di accesso condiviso?

La firma di accesso condiviso fornisce accesso delegato alle risorse di Hub eventi in base alle regole di autorizzazione. Una regola di autorizzazione ha un nome, è associata a diritti specifici e include una coppia di chiavi di crittografia. Usare il nome e la chiave della regola tramite il client Hub eventi o nel proprio codice per generare un token di firma di accesso condiviso. Un client può quindi passare il token all'hub eventi per dimostrare l'autorizzazione per l'operazione richiesta.

Le firme di accesso condiviso (SAS) sono un meccanismo di autorizzazione basato sulle attestazioni che usa token semplici. Quando si usano le firme di accesso condiviso, le chiavi non vengono mai passate durante il transito. Le chiavi vengono usate per firmare crittograficamente informazioni che possono essere verificate in un secondo momento dal servizio. L'uso delle firme di accesso condiviso è paragonabile a quello della combinazione di nome utente e password in cui il client entra immediatamente in possesso di un nome di regola di autorizzazione e una chiave corrispondente. È paragonabile a un modello di sicurezza federata, in cui il client riceve un token di accesso firmato per un tempo limitato da un servizio token di sicurezza senza mai entrare in possesso della chiave di firma.

Nota

Hub eventi di Azure supporta anche l'autorizzazione alle risorse dell'hub eventi utilizzando Microsoft Entra ID. L'autorizzazione di utenti o applicazioni tramite il token OAuth 2.0 restituito da Microsoft Entra ID offre una maggiore sicurezza e facilità d'uso rispetto alle firme di accesso condiviso (SAS). Con Microsoft Entra ID non è necessario archiviare i token nel codice e rischiare potenziali vulnerabilità della sicurezza.

Microsoft consiglia di usare Microsoft Entra ID con le applicazioni di Hub eventi di Azure, quando possibile. Per ulteriori informazioni, vedere Autorizzare l'accesso alla risorsa Hub eventi di Azure usando Microsoft Entra ID.

Importante

I token di firma di accesso condiviso sono fondamentali per proteggere le risorse. Pur fornendo granularità, la firma di accesso condiviso concede ai client l'accesso alle risorse di Hub eventi. Non devono essere condivisi pubblicamente. Quando la condivisione è necessaria per risolvere eventuali problemi, è consigliabile usare una versione dei file di log ridotta o eliminare i token di firma di accesso condiviso (se presenti) dai file di log e assicurarsi che nemmeno gli screenshot contengano informazioni relative alla firma di accesso condiviso.

Criteri di autorizzazione dell'accesso condiviso

Ogni spazio dei nomi di Hub eventi e ogni entità di Hub eventi (un hub eventi o un argomento Kafka) ha un criterio di autorizzazione di accesso condiviso costituito da regole. I criteri a livello di spazio dei nomi si applicano a tutte le entità in esso incluse, indipendentemente dalle specifiche configurazioni dei criteri.

Per ogni regola del criterio di autorizzazione si stabiliscono tre informazioni: nome, ambito e diritti. Il nome è un nome univoco in tale ambito. L'ambito è l'URI della risorsa in questione. Per uno spazio dei nomi ddegli hub eventi, l'ambito è il nome di dominio completo (FQDN), ad esempio https://<yournamespace>.servicebus.windows.net/.

I diritti forniti dalla regola del criterio possono essere una combinazione di:

  • Send: conferisce il diritto di inviare messaggi all'entità
  • Listen: conferisce il diritto di ascoltare o ricevere messaggi dall'entità
  • Manage: conferisce il diritto di gestire la topologia dello spazio dei nomi, incluse la creazione e l'eliminazione di entità. Il diritto Manage include i diritti Send e Listen.

Un criterio di entità o dello spazio dei nomi può contenere fino a 12 regole di autorizzazione di accesso condiviso, rendendo disponibile spazio per i tre set di regole, ognuno dei quali copre i diritti di base e la combinazione di Send e Listen. Questo limite sottolinea che l'archivio dei criteri di firma di accesso condiviso non deve essere un utente o un archivio di account del servizio. Se l'applicazione deve concedere l'accesso alle risorse dell'hub eventi in base alle identità utente o del servizio, deve implementare un servizio token di sicurezza che rilascia token di firma di accesso condiviso dopo un controllo di autenticazione e accesso.

A una regola di autorizzazione vengono assegnate una chiave primaria e una chiave secondaria. Si tratta di chiavi di crittografia complesse. Non perderle o comunicarle ad altri. Saranno sempre disponibili nel portale di Azure. È possibile utilizzare una delle chiavi generate ed è possibile rigenerarle in qualsiasi momento. Se si rigenera o si modifica una chiave nel criterio, tutti i token emessi in precedenza in base a tale chiave diventano immediatamente non validi. Le connessioni in corso create in base a tali token continuano invece a funzionare fino alla scadenza del token.

Quando si crea uno spazio dei nomi dell'hub eventi, viene creato automaticamente un criterio denominato RootManageSharedAccessKey. Questo criterio dispone delle autorizzazioni Manage per l'intero spazio dei nomi. È consigliabile considerare questa regola come un account radice amministratore e non usarla nell'applicazione. È possibile creare regole aggiuntive dei criteri nella scheda Configura per lo spazio dei nomi nel portale mediante PowerShell o l'interfaccia della riga di comando di Azure.

Procedure consigliate per l'uso della firma di accesso condiviso

Quando si utilizzano le firme di accesso condiviso nell'applicazione, è necessario essere consapevoli di due rischi potenziali:

  • In caso di diffusione di una firma di accesso condiviso, chiunque la ottiene può usarla e questo potrebbe compromettere le risorse di hub eventi.
  • Se una firma di accesso condiviso fornita a un'applicazione client scade e l'applicazione non è in grado di recuperarne una nuova dal servizio, è possibile che le funzionalità dell'applicazione potrebbero risentirne.

Per mitigare questi rischi, è consigliabile attenersi ai consigli seguenti relativi all'utilizzo di firme di accesso condiviso:

  • Chiedere ai client di rinnovare automaticamente la firma di accesso condiviso, se necessario: i client devono rinnovare la firma di accesso condiviso prima della scadenza, in modo da avere la possibilità di effettuare altri tentativi qualora il servizio che fornisce la firma di accesso condiviso non sia disponibile. Se la firma di accesso condiviso è destinata a essere utilizzata per poche operazioni immediate e di breve durata da completare entro la data di scadenza, il rinnovo della firma di accesso condiviso non è necessario. Se tuttavia si dispone di client che effettuano normalmente richieste tramite la firma di accesso condiviso, è necessario considerare la possibilità che la firma scada. In questo caso è essenziale trovare un punto di equilibrio tale da garantire che la firma di accesso condiviso sia di breve durata (come indicato in precedenza) e che il client richieda il rinnovo in tempo utile per evitare malfunzionamenti causati dalla scadenza della firma prima del rinnovo.
  • Fare attenzione all'orario di inizio della firma di accesso condiviso: se si imposta l'ora di inizio della firma di accesso condiviso su ora, a causa dello sfasamento di orario, ovvero delle differenze dell'ora corrente a seconda del computer in uso, potrebbero verificarsi problemi intermittenti nei primi minuti. In generale, impostare l'ora di inizio ad almeno 15 minuti prima. Oppure, evitare di impostarla, in modo che la firma diventi immediatamente valida in tutti i casi. Lo stesso vale in genere anche per l'ora di scadenza. È consigliabile osservare fino a 15 minuti di sfasamento di orario in entrambe le direzioni per qualsiasi richiesta.
  • Indicare una risorsa specifica a cui accedere: una procedura di sicurezza consigliata consiste nel fornire a un utente i privilegi minimi necessari. Se un utente necessita solo dell'accesso in lettura a una singola entità, concedere solo tale tipo di accesso per tale entità e non l'accesso in lettura/scrittura/eliminazione per tutte le entità. Ciò consente anche di ridurre i danni se una firma di accesso condiviso viene compromessa in quanto la firma è meno potente nelle mani di un utente malintenzionato.
  • Non usare sempre la firma di accesso condiviso: talvolta i rischi associati a una particolare operazione su un hub eventi superano i benefici derivanti dall'uso della firma di accesso condiviso. Per tali operazioni creare un servizio di livello intermedio che effettui operazioni di scrittura nell'hub eventi dopo autenticazione, controllo e convalida di regole di business.
  • Usare sempre HTTPS: usare sempre HTTPS per creare o distribuire una firma di accesso condiviso. Se una firma di accesso condiviso passata tramite HTTP viene intercettata, un utente malintenzionato che esegue un attacco man-in-the-middle è in grado di leggere la firma e quindi di usarla come se fosse l'utente cui è destinata, e questo potrebbe comportare la compromissione di dati sensibili o il danneggiamento di dati da parte dell'utente malintenzionato.

Conclusione

Le firme di accesso condiviso sono utili per fornire autorizzazioni limitate alle risorse di Hub eventi ai client. Costituiscono una parte essenziale del modello di sicurezza di qualsiasi applicazione che utilizza gli hub eventi di Azure. Il rispetto delle procedure consigliate elencate in questo articolo consente di usare la firma di accesso condiviso per offrire accesso ancor più flessibile alle risorse senza compromettere la sicurezza dell'applicazione.

Vedere gli articoli correlati seguenti: