Compartilhar via


Integrar o Armazenamento de Blobs do Azure ao Conector de Serviço

Esta página mostra os tipos de autenticação com suporte, os tipos de cliente e o código de exemplo do Armazenamento de Blobs do Azure usando o Conector de Serviço. Esta página também mostra nomes e valores da variável de ambiente padrão (ou configuração do Spring Boot) que você obtém ao criar a conexão de serviço.

Serviço de computação com suporte

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

  • Serviço de Aplicativo do Azure
  • Aplicativos de Contêiner do Azure
  • Azure Functions
  • AKS (Serviço de Kubernetes do Azure)
  • Azure Spring Apps

Tipos de autenticação e tipos de cliente com suporte

A tabela abaixo mostra quais combinações de métodos de autenticação e clientes são suportadas para conectar seu serviço de computação ao Armazenamento de Blobs do Azure usando o Conector de Serviço. “Sim” indica que a combinação tem suporte e “Não” indica que ela não tem.

Tipo de cliente Identidade gerenciada atribuída pelo sistema Identidade gerenciada atribuída pelo usuário Cadeia de conexão/segredo Entidade de serviço
.NET Sim Sim Sim Sim
Java Sim Sim Sim Yes
Java – Spring Boot Sim Sim Sim Sim
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Yes
Go Sim Sim Sim Yes
Nenhum Sim Sim Sim Sim

Essa tabela claramente indica que todas as combinações de tipos de cliente e métodos de autenticação são suportadas, exceto o tipo de cliente Java - Spring Boot, que suporta apenas o método Secreto / cadeia de conexão. 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 Conector de Serviço.

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 os serviços de computação ao Armazenamento de Blobs do Azure. Saiba mais sobre a Convenção de nomenclatura de variável de ambiente do conector de serviço.

Identidade gerenciada atribuída pelo sistema

Cliente SpringBoot

Autenticar com uma identidade gerenciada atribuída pelo sistema está disponível apenas para a versão 4.0 ou superior do Spring Cloud Azure.

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

Outros clientes

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade do Armazenamento de Blobs 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 Conector de Serviço. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está o código de exemplo para se conectar ao Armazenamento de Blobs usando a identidade gerenciada ou a 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 gerenciada atribuída pelo usuário

Cliente SpringBoot

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

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Indica se a identidade gerenciada deve ser habilitada True
spring.cloud.azure.storage.blob.account-name Nome da conta de armazenamento storage-account-name
spring.cloud.azure.storage.blob.endpoint Ponto de extremidade do Armazenamento de Blobs 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 Descrição Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade do Armazenamento de Blobs https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Sua 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 Conector de Serviço. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está o código de exemplo para se conectar ao Armazenamento de Blobs usando a identidade gerenciada ou a 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);

Cadeia de conexão

Aviso

A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz 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 do aplicativo Descrição Valor de exemplo
azure.storage.account-name Nome da conta do Armazenamento de Blobs <storage-account-name>
azure.storage.account-key Chave de conta do Armazenamento de Blobs <account-key>
azure.storage.blob-endpoint Ponto de extremidade do Armazenamento de Blobs https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name Seu nome de conta de armazenamento de Blobs 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 Blobs para o Spring Cloud Azure versão 4.0 ou superior <account-key>
spring.cloud.azure.storage.blob.endpoint Seu ponto de extremidade do Armazenamento de Blobs 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 Descrição Valor de exemplo
AZURE_STORAGEBLOB_CONNECTIONSTRING Cadeia de conexão do Armazenamento de Blobs 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 Conector do Serviço.

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

Entidade de serviço

Cliente SpringBoot

Autenticar com uma entidade de serviço está disponível apenas para a versão 4.0 ou superior do Spring Cloud Azure.

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.storage.blob.account-name Nome da conta de armazenamento storage-account-name
spring.cloud.azure.storage.blob.endpoint Ponto de extremidade do Armazenamento de Blobs https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id A ID do cliente da entidade de 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 Descrição Valor de exemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Ponto de extremidade do Armazenamento de Blobs https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Sua ID de cliente <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET Seu segredo do cliente <client-secret>
AZURE_STORAGEBLOB_TENANTID Sua ID de locatário <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 Conector de Serviço. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

Instalar dependências

dotnet add package Azure.Identity

Aqui está o código de exemplo para se conectar ao Armazenamento de Blobs usando a identidade gerenciada ou a 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óximas etapas

Siga os tutoriais para saber mais sobre o conector de serviço.