Condividi tramite


Integrare Archiviazione BLOB di Azure con Service Connector

Questa pagina mostra i tipi di autenticazione supportati, i tipi di client e un codice di esempio di Archiviazione BLOB di Azure tramite Service Connector. Questa pagina mostra anche i nomi e i valori predefiniti delle variabili di ambiente (o configurazione spring boot) che si ottengono quando si crea la connessione al servizio.

Servizi di calcolo supportati

Service Connector può essere usato per connettere i servizi di calcolo seguenti ad Archiviazione BLOB 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 client e metodi di autenticazione supportati per la connessione del servizio di calcolo ad Archiviazione BLOB di Azure tramite Service Connector. 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
Java
Java - Spring Boot
Node.js
Python
Go
Nessuno

Questa tabella indica chiaramente che sono supportate tutte le combinazioni di tipi di client e metodi di autenticazione, ad eccezione del tipo di client Java - Spring Boot, che supporta solo il metodo segreto / stringa di connessione. Tutti gli altri tipi di client possono usare uno dei metodi di autenticazione per connettersi ad Archiviazione BLOB di Azure tramite Service Connector.

Nomi di variabili di ambiente predefiniti o proprietà dell'applicazione e codice di esempio

Fare riferimento ai dettagli della connessione e al codice di esempio nelle tabelle seguenti, in base al tipo di client e al tipo di autenticazione della connessione, per connettere i servizi di calcolo ad Archiviazione BLOB di Azure. Altre informazioni sulla convenzione di denominazione delle variabili di ambiente di Service Connector.

Identità gestita assegnata dal sistema

Client SpringBoot

L'autenticazione con un'identità gestita assegnata dal sistema è disponibile solo per Spring Cloud Azure versione 4.0 o successiva.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Se abilitare l'identità gestita True
spring.cloud.azure.storage.blob.account-name Nome per l'account di archiviazione storage-account-name
spring.cloud.azure.storage.blob.endpoint Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/

Altri client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_STORAGEBLOB_RESOURCEENDPOINT Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Archiviazione BLOB di Azure tramite un'identità gestita assegnata dal sistema.

È possibile usare azure-identity per eseguire l'autenticazione tramite un'identità gestita o un'entità servizio. Ottenere l'URL dell'endpoint di Archiviazione BLOB di Azure dalla variabile di ambiente aggiunta da Service Connector. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

Installare le dipendenze

dotnet add package Azure.Identity

Di seguito è riportato un codice di esempio per connettersi all'archiviazione BLOB tramite un'identità gestita o un'entità servizio.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// 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_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Identità gestita assegnata dall'utente

Client SpringBoot

L'uso di un'identità gestita assegnata dall'utente come tipo di autenticazione è disponibile solo per Spring Cloud Azure versione 4.0 o successive.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Se abilitare l'identità gestita True
spring.cloud.azure.storage.blob.account-name Nome per l'account di archiviazione storage-account-name
spring.cloud.azure.storage.blob.endpoint Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID client dell'identità gestita assegnata dall'utente 00001111-aaaa-2222-bbbb-3333cccc4444

Altri client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_STORAGEBLOB_RESOURCEENDPOINT Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID L’ID client <client-ID>

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Archiviazione BLOB di Azure tramite un'identità gestita assegnata dall'utente.

È possibile usare azure-identity per eseguire l'autenticazione tramite un'identità gestita o un'entità servizio. Ottenere l'URL dell'endpoint di Archiviazione BLOB di Azure dalla variabile di ambiente aggiunta da Service Connector. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

Installare le dipendenze

dotnet add package Azure.Identity

Di seguito è riportato un codice di esempio per connettersi all'archiviazione BLOB tramite un'identità gestita o un'entità servizio.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// 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_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        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.

Client SpringBoot

Proprietà dell'applicazione Descrizione Valore di esempio
azure.storage.account-name Il nome dell'account di Archiviazione BLOB <storage-account-name>
azure.storage.account-key La chiave dell'account di Archiviazione BLOB <account-key>
azure.storage.blob-endpoint L'endpoint di Archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name Il nome dell'account di Archiviazione BLOB per Spring Cloud Azure versione 4.0 o successiva <storage-account-name>
spring.cloud.azure.storage.blob.account-key La chiave dell'account di Archiviazione BLOB per Spring Cloud Azure versione 4.0 o successiva <account-key>
spring.cloud.azure.storage.blob.endpoint L'endpoint di Archiviazione BLOB per Spring Cloud Azure versione 4.0 o successiva https://<storage-account-name>.blob.core.windows.net/

Altri client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_STORAGEBLOB_CONNECTIONSTRING Stringa di connessione di Archiviazione BLOB DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Codice di esempio

Per connettersi ad Archiviazione BLOB di Azure tramite una stringa di connessione, vedere i passaggi e il codice seguenti.

Ottenere la stringa di connessione di Archiviazione BLOB di Azure dalla variabile di ambiente aggiunta da Service Connector.

Installare le dipendenze

dotnet add package Azure.Storage.Blob
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System; 

// get Blob connection string
var connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CONNECTIONSTRING");

// Create a BlobServiceClient object 
var blobServiceClient = new BlobServiceClient(connectionString);

Entità servizio

Client SpringBoot

L'autenticazione con un'entità servizio è disponibile solo per Spring Cloud Azure versione 4.0 o successiva.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.storage.blob.account-name Nome per l'account di archiviazione storage-account-name
spring.cloud.azure.storage.blob.endpoint Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID client dell'entità servizio 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret Segreto client per eseguire l'autenticazione dell'entità servizio Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

Altri client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_STORAGEBLOB_RESOURCEENDPOINT Endpoint di archiviazione BLOB https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID L’ID client <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET Segreto client <client-secret>
AZURE_STORAGEBLOB_TENANTID ID del tenant. <tenant-ID>

Codice di esempio

Per connettersi ad Archiviazione BLOB di Azure tramite un'entità servizio, vedere i passaggi e il codice seguenti.

È possibile usare azure-identity per eseguire l'autenticazione tramite un'identità gestita o un'entità servizio. Ottenere l'URL dell'endpoint di Archiviazione BLOB di Azure dalla variabile di ambiente aggiunta da Service Connector. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

Installare le dipendenze

dotnet add package Azure.Identity

Di seguito è riportato un codice di esempio per connettersi all'archiviazione BLOB tramite un'identità gestita o un'entità servizio.

using Azure.Identity;
using Azure.Storage.Blobs;

// get Blob endpoint
var blobEndpoint = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_RESOURCEENDPOINT");

// 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_STORAGEBLOB_CLIENTID");
//     });

// service principal 
// var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEBLOB_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var blobServiceClient = new BlobServiceClient(
        new Uri(blobEndpoint),
        credential);

Passaggi successivi

Per altre informazioni su Service Connector, seguire le esercitazioni.