Condividi tramite


Autorizzare le richieste alle risorse del Servizio Azure SignalR con le applicazioni di Microsoft Entra

Il servizio Azure SignalR supporta Microsoft Entra ID per autorizzare le richieste dalle applicazioni Microsoft Entra.

Questo articolo illustra come configurare la risorsa e i codici del servizio Azure SignalR per autorizzare le richieste alla risorsa da un'applicazione Microsoft Entra.

Registrare un'applicazione

Il primo passaggio consiste nel registrare un'applicazione Microsoft Entra:

  1. Nel portale di Azure, cercare e selezionare Microsoft Entra ID.

  2. In Gestisci, seleziona Registrazioni app.

  3. Seleziona Nuova registrazione. Viene visualizzato il riquadro Registra un'applicazione.

    Screenshot del riquadro per la registrazione di un'applicazione.

  4. In Nome, immettere un nome visualizzato per l'applicazione.

  5. Selezionare Registra per confermare la registrazione.

Dopo aver registrato l'applicazione, è possibile trovare i valori ID applicazione (client) e ID directory (tenant) nella pagina di panoramica dell'applicazione. Questi GUID possono essere utili nei passaggi seguenti.

Screenshot delle informazioni generali per un'applicazione registrata.

Per altre informazioni sulla registrazione di un'applicazione, vedere Guida di avvio rapido: Registrare un'applicazione con Microsoft Identity Platform.

Aggiungi credenziali

È possibile aggiungere sia certificati che segreti client (una stringa) come credenziali della registrazione dell'app client riservata.

Segreto client

L'applicazione deve avere un segreto client per dimostrare la propria identità quando richiede un token. Per creare un segreto client, seguire questa procedura:

  1. In Gestisci, selezionare Certificati e segreti.

  2. Nella scheda Segreti client selezionare Nuovo segreto client.

    Screenshot delle selezioni per la creazione di un segreto client.

  3. Immettere una descrizione per il segreto client e scegliere un'ora di scadenza.

  4. Copiare il valore del segreto client e incollarlo in una posizione sicura.

    Nota

    Il segreto viene visualizzato una sola volta.

Certificate

È possibile caricare un certificato invece di creare un segreto client.

Screenshot delle selezioni per il caricamento di un certificato.

Per altre informazioni sull'aggiunta di credenziali, vedere Aggiungi credenziali.

Aggiungere assegnazioni di ruolo nel portale di Azure

I passaggi seguenti descrivono come assegnare un ruolo del server app SignalR a un'entità servizio (applicazione) tramite una risorsa del servizio Azure SignalR. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

Nota

Un ruolo può essere assegnato a qualsiasi ambito, tra cui gruppo di gestione, sottoscrizione, gruppo di risorse o risorsa singola. Per altre informazioni sull'ambito, vedere Comprendere l'ambito per il controllo degli accessi in base al ruolo di Azure.

  1. Nel portale di Azure passare alla risorsa Servizio Azure SignalR.

  2. Seleziona Controllo di accesso (IAM).

  3. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    Screenshot che mostra la pagina del controllo di accesso e delle selezioni per l'aggiunta di un'assegnazione di ruolo.

  4. Nella scheda Ruolo, selezionare Server app SignalR.

  5. Nella scheda Membri selezionare Utente, gruppo o entità servizioe quindi scegliere Selezionare membri.

  6. Cercare e selezionare l'applicazione a cui si vuole assegnare il ruolo.

  7. Nella scheda Rivedi e assegna selezionare Rivedi e assegna per assegnare il ruolo.

Importante

La propagazione delle assegnazioni dei ruoli può richiedere fino a 30 minuti.

Per altre informazioni su come assegnare e gestire i ruoli di Azure, consultare questi articoli:

Configurazione dell'app

Server app

La procedura consigliata consiste nel configurare identità e credenziali nelle variabili di ambiente:

Variabile Descrizione
AZURE_TENANT_ID L'ID tenant di Microsoft Entra.
AZURE_CLIENT_ID L'ID client (applicazione) di una registrazione dell'app nel tenant.
AZURE_CLIENT_SECRET Segreto client generato per la registrazione dell'app.
AZURE_CLIENT_CERTIFICATE_PATH Percorso di un certificato e di una coppia di chiavi privata in formato PEM o PFX, che può autenticare la registrazione dell'app.
AZURE_USERNAME Nome utente, noto anche come Nome entità utente (UPN) di un account utente Microsoft Entra.
AZURE_PASSWORD Password dell'account utente Microsoft Entra. Una password non è supportata per gli account con l'autenticazione a più fattori abilitata.

È possibile usare DefaultAzureCredential o EnvironmentCredential per configurare gli endpoint del servizio Azure SignalR. Ecco il codice per DefaultAzureCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
    };
});

Ecco il codice per EnvironmentCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
    };
});

Per informazioni sul funzionamento di DefaultAzureCredential, vedere Classe DefaultAzureCredential.

Usare credenziali specifiche dell'endpoint

Nell'organizzazione potrebbe essere necessario utilizzare credenziali diverse per endpoint differenti.

In questo scenario è possibile usare ClientSecretCredential o ClientCertificateCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
    var credential2 = new ClientCertificateCredential("tenantId", "clientId", "pathToCert");

    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
        new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
    };
});

Associazioni del Servizio Azure SignalR in Funzioni di Azure

Le associazioni del servizio Azure SignalR in Funzioni di Azure usano le impostazioni applicazione nel portale o local.settings.json in locale per configurare le identità dell'applicazione Microsoft Entra per l'accesso alle risorse del Servizio Azure SignalR.

Prima di tutto, è necessario specificare l'URI del Servizio Azure SignalR. La chiave dell'URI del servizio è serviceUri. Inizia con un prefisso del nome di connessione (che per impostazione predefinita è AzureSignalRConnectionString) e un separatore. Il separatore è un carattere di sottolineatura (__) nel portale di Azure e due punti (:) nel file local.settings.json. È possibile personalizzare il nome della connessione usando la proprietà di associazione ConnectionStringSetting. Continuare a leggere per trovare l'esempio.

Scegliere quindi se configurare l'identità dell'applicazione Microsoft Entra in variabili di ambiente predefinite o in variabili specificate da SignalR.

Configurare un'identità nelle variabili di ambiente predefinite

Per l'elenco delle variabili di ambiente predefinite, vedere Variabili di ambiente. Quando si dispone di più servizi, è consigliabile usare la stessa identità dell'applicazione, in modo che non sia necessario configurare l'identità per ogni servizio. Altri servizi possono anche usare queste variabili di ambiente, in base alle impostazioni di tali servizi.

Ad esempio, per usare le credenziali del segreto client, configurare l'identità come indicato di seguito nel file local.settings.json:

{
  "Values": {
    "<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
    "AZURE_CLIENT_ID": "...",
    "AZURE_CLIENT_SECRET": "...",
    "AZURE_TENANT_ID": "..."
  }
}

Nel portale di Azure, aggiungere le impostazioni come indicato di seguito:

 <CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...

Configurare un'identità nelle variabili specificate da SignalR

Le variabili specificate da SignalR condividono lo stesso prefisso di chiave con la chiave serviceUri. Ecco l'elenco delle variabili che è possibile usare:

  • clientId
  • clientSecret
  • tenantId

Seguono gli esempi per utilizzare le credenziali del segreto client nel file local.settings.json:

{
  "Values": {
    "<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
    "<CONNECTION_NAME_PREFIX>:clientId": "...",
    "<CONNECTION_NAME_PREFIX>:clientSecret": "...",
    "<CONNECTION_NAME_PREFIX>:tenantId": "..."
  }
}

Nel portale di Azure, aggiungere le impostazioni come indicato di seguito:

<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...

Passaggi successivi

Vedere gli articoli correlati seguenti: