Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una firma di accesso condiviso (SAS) consente di concedere l'accesso limitato alle risorse nello spazio dei nomi di Hub eventi. SAS protegge l'accesso alle risorse di Event Hub 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 SAS e esamina le migliori pratiche SAS.
Nota
Questo articolo tratta dell'autorizzazione dell'accesso alle risorse di Event Hubs tramite firme di accesso condiviso. Per informazioni sull'autenticazione dell'accesso alle risorse di Event Hubs tramite SAS, vedere Autenticare con SAS.
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 i client di Event Hubs o nel codice personalizzato per generare SAS (token di firma di accesso condiviso). Un client può quindi passare il token all'hub eventi per dimostrare l'autorizzazione per l'operazione richiesta.
Sas è un meccanismo di autorizzazione basato su attestazioni che usa token semplici. Quando si usa la firma di accesso condiviso, non si passano mai chiavi in transito. Al contrario, si usano le chiavi per firmare in modo crittografico le informazioni che il servizio può verificare in un secondo momento. È possibile usare una firma di accesso condiviso simile a uno schema di nome utente e password in cui il client è in possesso immediato di un nome di regola di autorizzazione e di una chiave corrispondente. È anche possibile usare un SAS simile a un modello di sicurezza federato, in cui il client riceve un token di accesso limitato nel tempo e firmato da un servizio di token di sicurezza senza mai acquisire la chiave utilizzata per firmare.
Nota
Hub eventi di Azure supporta anche l'autorizzazione alle risorse di Hub eventi usando Microsoft Entra ID. L'autorizzazione di utenti o applicazioni tramite il token OAuth 2.0 restituito da Microsoft Entra ID offre sicurezza e facilità di utilizzo superiori rispetto alle firme di accesso condiviso. Usando Microsoft Entra ID, non è necessario archiviare i token nel codice e rischiare potenziali vulnerabilità di 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 (SAS) concede ai client l'accesso alle risorse degli Event Hubs. Non condividerli pubblicamente. Quando si condivide, se necessario per motivi di risoluzione dei problemi, prendere in considerazione l'uso di una versione ridotta di tutti i file di log o l'eliminazione dai file di log dei token di firma di accesso condiviso (se presenti). Assicurarsi che gli screenshot non contengano neanche le informazioni SAS.
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 degli 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.
Una policy di entità o dello spazio dei nomi può contenere fino a 12 regole di autorizzazione di accesso condiviso, fornendo spazio per tre set di regole, ciascuno coprente i diritti di base e la combinazione di Invia e Ascolta. Questo limite sottolinea che l'archivio delle politiche SAS non è destinato ad essere un archivio di account utente o di servizio. Se l'applicazione deve concedere l'accesso alle risorse di Event Hubs in base alle identità utente o del servizio, deve implementare un servizio di token di sicurezza che emette token SAS 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 crittografiche forti. Non perderle o comunicarle ad altri. Sono 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 di Event Hubs, viene automaticamente creata una politica denominata RootManageSharedAccessKey per lo spazio dei nomi. Questo criterio dispone delle autorizzazioni Manage per l'intero spazio dei nomi. Trattare questa regola come un account root amministrativo e non utilizzarla nell'applicazione. È possibile creare più regole delle politiche nella scheda Configura per il namespace nel portale, tramite PowerShell o interfaccia della riga di comando di Azure.
Procedure consigliate per l'uso di SAS
Quando si usano firme di accesso condiviso nelle applicazioni, tenere presenti due potenziali rischi:
- Se un SAS trapela, chiunque lo ottenga può usarlo, e ciò può compromettere le risorse di Event Hubs.
- Se una firma di accesso condiviso fornita a un'applicazione client scade e l'applicazione non riesce a recuperare una nuova firma di accesso condiviso dal servizio, la funzionalità dell'applicazione potrebbe essere ostacolata.
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 per consentire il tempo di ripetizione se il servizio che fornisce la firma di accesso condiviso non è disponibile. Se la firma di accesso condiviso è destinata a un numero limitato di operazioni immediate e di breve durata previste per il completamento entro il periodo di scadenza, il rinnovo potrebbe non essere necessario. Tuttavia, se hai un cliente che effettua regolarmente richieste tramite SAS, allora la possibilità di scadenza entra in gioco. La considerazione chiave consiste nell'bilanciare la necessità che la firma di accesso condiviso sia di breve durata (come indicato in precedenza) con la necessità di garantire che il client richieda il rinnovo in anticipo (per evitare interruzioni dovute alla scadenza della firma di accesso condiviso prima di un rinnovo riuscito).
- Prestare attenzione all'ora di inizio di SAS: se si imposta l'ora di inizio di SAS su ora, a causa della discrepanza dell'orologio (differenze nell'ora corrente in base a computer diversi), potrebbero verificarsi errori occasionali durante i primi minuti. In generale, impostare l'ora di inizio ad almeno 15 minuti prima. Oppure, non impostarlo affatto, rendendolo immediatamente valido in tutti i casi. Lo stesso vale in genere anche per l'ora di scadenza. Ricorda che potresti osservare fino a 15 minuti di sfasamento dell'orologio in entrambe le direzioni su qualsiasi richiesta.
- Essere specifici con la risorsa a cui accedere: una procedura consigliata per la sicurezza consiste nel fornire agli utenti i privilegi minimi necessari. Se un utente necessita solo dell'accesso in lettura a una singola entità, si conceda l'accesso in lettura a tale singola entità, piuttosto che l'accesso in lettura, scrittura o eliminazione a tutte le entità. Questo approccio consente anche di ridurre i danni se una firma di accesso condiviso viene compromessa perché la firma di accesso condiviso ha meno potenza nelle mani di un utente malintenzionato.
- Non usare sempre SAS: a volte i rischi associati a una particolare operazione contro i tuoi Event Hubs superano i vantaggi di SAS. Per tali operazioni, creare un servizio di livello intermedio che effettui operazioni di scrittura negli hub degli eventi dopo la convalida delle regole di business, l'autenticazione e l'auditing.
- Usare sempre HTTPS: Usare sempre HTTPS per creare o distribuire un SAS. Se un SAS (firma di accesso condiviso) viene passato tramite HTTP e intercettato, un utente malintenzionato che esegue un attacco man-in-the-middle può leggere il SAS e usarlo proprio come farebbe l'utente previsto. Ciò potrebbe compromettere i dati sensibili o consentire a un utente malintenzionato di danneggiare i dati.
Conclusione
Le firme di accesso condiviso sono utili per fornire autorizzazioni limitate alle risorse di Hub eventi ai client. Sono una parte essenziale del modello di sicurezza per qualsiasi applicazione che usa Hub eventi di Azure. Seguendo le best practice elencate in questo articolo, è possibile utilizzare il SAS per offrire una maggiore flessibilità di accesso alle proprie risorse, senza compromettere la sicurezza dell'applicazione.
Contenuto correlato
Vedere gli articoli correlati seguenti: