Partilhar via


Integrar o Armazenamento de Blobs do Azure com o Service Connector

Esta página mostra os tipos de autenticação suportados, tipos de cliente e código de exemplo do Armazenamento de Blobs do Azure usando o Service Connector. Esta página também mostra nomes e valores de variáveis de ambiente padrão (ou configuração do Spring Boot) que você obtém quando cria a conexão de serviço.

Serviços de computação suportados

O Service Connector pode ser usado para conectar os seguintes serviços de computação ao Armazenamento de Blobs do Azure:

  • Serviço de Aplicações do Azure
  • Azure Container Apps
  • Funções do Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de autenticação e tipos de cliente suportados

A tabela abaixo mostra quais combinações de métodos de autenticação e clientes têm suporte para conectar seu serviço de computação ao Armazenamento de Blobs do Azure usando o Service Connector. Um "Sim" indica que a combinação é suportada, enquanto um "Não" indica que ela não é suportada.

Tipo de cliente Identidade gerida atribuída pelo sistema Identidade gerida atribuída pelo utilizador Segredo / cadeia de conexão Service principal (Principal de serviço)
.NET Sim Sim Sim Sim
Java Sim Sim Sim Sim
Java - Arranque primavera Sim Sim Sim Sim
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Sim
Go Sim Sim Sim Sim
Nenhuma Sim Sim Sim Sim

Esta tabela indica claramente que todas as combinações de tipos de cliente e métodos de autenticação são suportadas, exceto para o tipo de cliente Java - Spring Boot, que suporta apenas o método Secret / connection string. Todos os outros tipos de cliente podem usar qualquer um dos métodos de autenticação para se conectar ao Armazenamento de Blobs do Azure usando o Service Connector.

Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo

Consulte os detalhes da conexão e o código de exemplo nas tabelas a seguir, de acordo com o tipo de autenticação e o tipo de cliente da sua conexão, para conectar serviços de computação ao Armazenamento de Blobs do Azure. Você pode saber mais sobre a convenção de nomenclatura de variável de ambiente do Service Connector.

Identidade gerida atribuída pelo sistema

Cliente SpringBoot

A autenticação com uma identidade gerenciada atribuída ao sistema só está disponível para o Spring Cloud Azure versão 4.0 ou superior.

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada True
spring.cloud.azure.storage.blob.nome-da-conta Nome da conta de armazenamento storage-account-name
spring.cloud.azure.storage.blob.endpoint Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/

Outros clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Armazenamento de Blobs do Azure usando uma identidade gerenciada atribuída pelo sistema.

Você pode usar azure-identity para autenticar por meio de identidade gerenciada ou entidade de serviço. Obtenha a URL do ponto de extremidade do Armazenamento de Blobs do Azure da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está um código de exemplo para se conectar ao armazenamento de Blob usando identidade gerenciada ou entidade de serviço.

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);

Identidade gerida atribuída pelo utilizador

Cliente SpringBoot

A autenticação com uma identidade gerenciada atribuída pelo usuário só está disponível para o Spring Cloud Azure versão 4.0 ou superior.

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada True
spring.cloud.azure.storage.blob.nome-da-conta Nome da conta de armazenamento storage-account-name
spring.cloud.azure.storage.blob.endpoint Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID do cliente da identidade gerenciada atribuída pelo usuário 00001111-aaaa-2222-bbbb-3333cccc4444

Outros clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID O seu ID de cliente <client-ID>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Armazenamento de Blobs do Azure usando uma identidade gerenciada atribuída pelo usuário.

Você pode usar azure-identity para autenticar por meio de identidade gerenciada ou entidade de serviço. Obtenha a URL do ponto de extremidade do Armazenamento de Blobs do Azure da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está um código de exemplo para se conectar ao armazenamento de Blob usando identidade gerenciada ou entidade de serviço.

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);

Connection string

Aviso

A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.

Cliente SpringBoot

Propriedades da aplicação Description Valor de exemplo
azure.storage.nome-da-conta Seu nome de conta de armazenamento de Blob <storage-account-name>
azure.storage.account-key Sua chave de conta de armazenamento de Blob <account-key>
azure.storage.blob-endpoint Seu ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.nome-da-conta Seu nome de conta de armazenamento de Blob para o Spring Cloud Azure versão 4.0 ou superior <storage-account-name>
spring.cloud.azure.storage.blob.account-key Sua chave de conta de Armazenamento de Blob para o Spring Cloud Azure versão 4.0 ou superior <account-key>
spring.cloud.azure.storage.blob.endpoint Seu ponto de extremidade de Armazenamento de Blob para o Spring Cloud Azure versão 4.0 ou superior https://<storage-account-name>.blob.core.windows.net/

Outros clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_STORAGEBLOB_CONNECTIONSTRING Cadeia de conexão de armazenamento de Blob DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Armazenamento de Blobs do Azure usando uma cadeia de conexão.

Obtenha a cadeia de conexão do Armazenamento de Blobs do Azure da variável de ambiente adicionada pelo Service Connector.

Instalar dependências

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);

Service principal (Principal de serviço)

Cliente SpringBoot

A autenticação com uma entidade de serviço só está disponível para o Spring Cloud Azure versão 4.0 ou superior.

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.storage.blob.nome-da-conta Nome da conta de armazenamento storage-account-name
spring.cloud.azure.storage.blob.endpoint Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID de Cliente do principal do serviço 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret Segredo do cliente para executar a autenticação da entidade de serviço Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

Outros clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade de armazenamento de Blob https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID O seu ID de cliente <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET O segredo do seu cliente <client-secret>
AZURE_STORAGEBLOB_TENANTID O seu ID de inquilino <tenant-ID>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Armazenamento de Blobs do Azure usando uma entidade de serviço.

Você pode usar azure-identity para autenticar por meio de identidade gerenciada ou entidade de serviço. Obtenha a URL do ponto de extremidade do Armazenamento de Blobs do Azure da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está um código de exemplo para se conectar ao armazenamento de Blob usando identidade gerenciada ou entidade de serviço.

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);

Próximos passos

Siga os tutoriais para saber mais sobre o Service Connector.