Condividi tramite


Integrare il bus di servizio con il connettore di servizi

Questa pagina mostra i metodi e i client di autenticazione supportati e mostra il codice di esempio che è possibile usare per connettere Bus di servizio di Azure ad altri servizi cloud tramite il connettore di servizi. È comunque possibile connettersi al bus di servizio con altri linguaggi di programmazione senza usare il connettore di servizi. Questa pagina mostra inoltre i nomi e i valori predefiniti delle variabili di ambiente (o configurazione Spring Boot) che si ottengono quando si creano le connessioni al servizio.

Servizi di calcolo supportati

Il connettore di servizi può essere usato per connettere i servizi di calcolo seguenti a bus di servizio di Azure:

  • Servizio app di Azure
  • App contenitore di Azure
  • Funzioni di Azure
  • Servizio Azure Kubernetes (AKS)
  • Azure Spring Apps

Tipi di autenticazione e di client supportati

La tabella seguente illustra le combinazioni di metodi di autenticazione e client supportati per la connessione del servizio di calcolo a bus di servizio tramite il connettore di servizi. Un valore "Sì" indica che la combinazione è supportata, mentre "No" indica che non è supportata.

Tipo client Identità gestita assegnata dal sistema Identità gestita assegnata dall'utente Stringa di segreto/connessione Entità servizio
.NET
Go
Java
Java - Spring Boot
Node.js
Python
Nessuno

Questa tabella indica che tutte le combinazioni di tipi client e metodi di autenticazione nella tabella sono supportate. Tutti i tipi di client possono usare uno dei metodi di autenticazione per connettersi a bus di servizio di Azure tramite il connettore di servizi.

Nomi di variabili di ambiente predefiniti o proprietà dell'applicazione

Usare i dettagli di connessione seguenti per connettere i servizi di calcolo a bus di servizio. Per ogni esempio seguente, sostituire i testi segnaposto <Service-Bus-namespace>, <access-key-name>, <access-key-value>, <client-ID>, <client-secret> e <tenant-id> con lo spazio dei nomi di bus di servizio, il nome della chiave di accesso condiviso, il valore della chiave di accesso condiviso, l'ID client, il segreto client e l'ID tenant. Per altre informazioni sulle convenzioni di denominazione, vedere l'articolo Elementi interni del connettore di servizi.

Identità gestita assegnata dal sistema

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.servicebus.namespace Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net

Codice di esempio

Fare riferimento ai passaggi e al codice seguenti per connettersi al bus di servizio usando un'identità gestita assegnata dal sistema.

  1. Installare le dipendenze.

    dotnet add package Azure.Messaging.ServiceBus
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando Azure.Identity e ottenere lo spazio dei nomi del bus di servizio dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Azure.Identity;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureSERVICEBUS;
    
    string namespace = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var client = new ServiceBusClient(namespace, credential);
    

Identità gestita assegnata dall'utente

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.servicebus.namespace Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net
spring.cloud.azure.client-id L’ID client <client-ID>

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net
AZURE_SERVICEBUS_CLIENTID L’ID client <client-ID>

Codice di esempio

Fare riferimento ai passaggi e al codice seguenti per connettersi al bus di servizio usando un'identità gestita assegnata dall’utente.

  1. Installare le dipendenze.

    dotnet add package Azure.Messaging.ServiceBus
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando Azure.Identity e ottenere lo spazio dei nomi del bus di servizio dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Azure.Identity;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureSERVICEBUS;
    
    string namespace = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var client = new ServiceBusClient(namespace, credential);
    

Stringa di connessione

Avviso

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.servicebus.connection-string Stringa di connessione del bus di servizio Endpoint=sb://<Service-Bus-namespace>.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_SERVICEBUS_CONNECTIONSTRING Stringa di connessione del bus di servizio Endpoint=sb://<Service-Bus-namespace>.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Codice di esempio

Fare riferimento ai passaggi e al codice seguenti per connettersi al bus di servizio usando una stringa di connessione.

  1. Installare le dipendenze.

    dotnet add package Azure.Messaging.ServiceBus
    
  2. Ottenere la stringa di connessione del bus di servizio dalle variabili di ambiente aggiunte dal connettore di servizi.

    using Azure.Messaging.ServiceBus;
    
    var connectionString = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CONNECTIONSTRING");
    var client = client = new ServiceBusClient(connectionString);
    

Entità servizio

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.servicebus.namespace Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net
spring.cloud.azure.client-id L’ID client <client-ID>
spring.cloud.azure.tenant-id Segreto client <client-secret>
spring.cloud.azure.client-secret ID del tenant. <tenant-id>

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE Spazio dei nomi bus di servizio: <Service-Bus-namespace>.servicebus.windows.net
AZURE_SERVICEBUS_CLIENTID L’ID client <client-ID>
AZURE_SERVICEBUS_CLIENTSECRET Segreto client <client-secret>
AZURE_SERVICEBUS_TENANTID ID del tenant. <tenant-id>

Codice di esempio

Fare riferimento ai passaggi e al codice seguenti per connettersi al bus di servizio usando un’entità servizio.

  1. Installare le dipendenze.

    dotnet add package Azure.Messaging.ServiceBus
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando Azure.Identity e ottenere lo spazio dei nomi del bus di servizio dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Azure.Identity;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureSERVICEBUS;
    
    string namespace = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_FULLYQUALIFIEDNAMESPACE");
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_SERVICEBUS_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var client = new ServiceBusClient(namespace, credential);
    

Passaggio successivo

Per altre informazioni sul connettore di servizi seguire l'esercitazione riportata di seguito.