Autenticazione e autorizzazione del bus di servizio

Le applicazioni accedono alle funzioni del bus di servizio di Azure usando l'autenticazione con token per la firma di accesso condiviso (SAS). Con la firma di accesso condiviso, le applicazioni presentano un token al bus di servizio che è stato firmato con una chiave simmetrica nota sia all'emittente del token che al bus di servizio ("condivisa"); tale chiave è direttamente associata a una regola che concede diritti di accesso specifici, ad esempio l'autorizzazione alla ricezione/all'ascolto o all'invio di messaggi. Le regole relative alla firma di accesso condiviso sono configurate nello spazio dei nomi o direttamente sull'entità, ad esempio una coda o un argomento, consentendo il controllo di accesso granulare.

I token della firma di accesso condiviso possono essere generati direttamente da un client del bus di servizio o da un token intermedio che emette endpoint con cui il client interagisce. Ad esempio, un sistema può richiedere al client di chiamare un endpoint del servizio Web protetto mediante autorizzazione di Active Directory per dimostrare i diritti di accesso di identità e di sistema; il servizio Web restituirà quindi il token del bus di servizio appropriato. Questo token di firma di accesso condiviso può essere facilmente generato usando il provider di token del bus di servizio incluso nel SDK.

Importante

Se si usa il controllo di accesso di Azure Active Directory (anche noto come servizio di controllo di accesso o ACS) in combinazione con il bus di servizio, si noti che il supporto per questo metodo è ora limitato ed è necessario eseguire la migrazione dell'applicazione per l'uso di SAS. Per altre informazioni, vedere questo post di blog.

Autenticazione della firma di accesso condiviso

autenticazione della firma di accesso condiviso garantisce l'accesso dell'utente alle risorse del bus di servizio con diritti specifici. Nel bus di servizio, l'autenticazione della firma di accesso condiviso implica la configurazione di una chiave di crittografia con i relativi diritti in una risorsa del bus di servizio. I client possono quindi ottenere l'accesso a questa risorsa presentando un token di firma di accesso condiviso composto dall'URI della risorsa a cui si vuole accedere e da una scadenza firmata con la chiave configurata.

È possibile configurare le chiavi per la firma di accesso condiviso in uno spazio dei nomi del bus di servizio. La chiave si applica a tutte le entità di messaggistica nello spazio dei nomi. È anche possibile configurare le chiavi nelle code e negli argomenti del bus di servizio. SAS è anche supportato in Inoltro di Azure.

Per usare la firma di accesso condiviso, è possibile configurare un oggetto SharedAccessAuthorizationRule in uno spazio dei nomi, una coda o un argomento. Questa regola include gli elementi seguenti:

  • KeyName che identifica la regola.
  • PrimaryKey che è una chiave di crittografia usata per firmare/convalidare i token di firma di accesso condiviso.
  • SecondaryKey che è una chiave di crittografia usata per firmare/convalidare i token di firma di accesso condiviso.
  • Rights che rappresenta la raccolta di diritti Listen, Send o Manage concessi.

Le regole di autorizzazione configurate a livello di spazio dei nomi possono garantire l'accesso a tutte le entità in uno spazio dei nomi per i client con token firmati che usano la chiave corrispondente. In uno spazio dei nomi, una coda o un argomento del bus di servizio è possibile configurare fino a 12 regole di autorizzazione. Per impostazione predefinita, un oggetto SharedAccessAuthorizationRule con tutti i diritti viene configurato per ogni spazio dei nomi quando ne viene eseguito il provisioning per la prima volta.

Per accedere a un'entità, è necessario un token di firma di accesso condiviso generato usando un oggetto SharedAccessAuthorizationRule. Il token di firma di accesso condiviso viene generato usando l'algoritmo HMAC-SHA256 di una stringa di risorsa composta dall'URI della risorsa a cui si vuole accedere e da una scadenza, seguiti da una chiave di crittografia associata alla regola di autorizzazione.

Il supporto per l'autenticazione della firma di accesso condiviso per il bus di servizio è incluso in Azure .NET SDK 2.0 e versioni successive. Nella firma di accesso condiviso è incluso il supporto per un oggetto SharedAccessAuthorizationRule. Tutte le API che accettano una stringa di connessione come parametro includono il supporto per le stringhe di connessione della firma di accesso condiviso.

Passaggi successivi