Usa Azure Identity con WebPubSubServiceClient

Questo articolo mostra come creare un WebPubSubServiceClient che usa Microsoft Entra ID per autorizzare le richieste verso Azure Web PubSub.

Prerequisiti

Important

Assegna all'identità Microsoft Entra un ruolo di Azure che includa le autorizzazioni del piano dati richieste dalle operazioni dell'SDK richiamate dalla tua applicazione. Per generare un client access token e usarlo per connettersi, l'identità richiede sia Microsoft.SignalRService/WebPubSub/clientConnection/generateToken/action che Microsoft.SignalRService/WebPubSub/clientConnection/write. Il ruolo predefinito Web PubSub Service Owner comprende entrambe le autorizzazioni, ma consente l'accesso a tutte le API del piano dati. Nessun ruolo predefinito più limitato include entrambe le autorizzazioni. Per l'accesso a privilegi minimi, usa un ruolo personalizzato che contenga solo i permessi di cui la tua applicazione ha bisogno.

Scegli una lingua:

Installa i pacchetti Azure Identity e Azure Web PubSub:

dotnet add package Azure.Identity
dotnet add package Azure.Messaging.WebPubSub

Crea un DefaultAzureCredential, e passalo a WebPubSubServiceClient:

using Azure.Identity;
using Azure.Messaging.WebPubSub;

var credential = new DefaultAzureCredential();
var client = new WebPubSubServiceClient(
    new Uri("<endpoint>"),
    "<hub>",
    credential);

Per altri tipi di credenziali, consulta la libreria client Azure Identity per .NET.

Utilizzare l'iniezione delle dipendenze

Installa il pacchetto di iniezione delle dipendenze:

dotnet add package Microsoft.Extensions.Azure

Registrati WebPubSubServiceClient alla collezione di servizi:

using Azure.Identity;
using Microsoft.Extensions.Azure;
using Microsoft.Extensions.DependencyInjection;

void ConfigureServices(IServiceCollection services)
{
    services.AddAzureClients(builder =>
    {
        builder.AddWebPubSubServiceClient(
            new Uri("<endpoint>"),
            "<hub>",
            new DefaultAzureCredential());
    });
}

Per maggiori informazioni, consulta la libreria client di servizi Azure Web PubSub per .NET e l'esempio completo.