Compartir vía


Integración de Azure Blob Storage con el conector de servicio

En esta página se muestran los tipos de autenticación admitidos, los tipos de cliente y el código de ejemplo de Azure Blob Storage mediante Service Connector. Esta página también muestra los nombres y valores predeterminados de las variables de entorno o la configuración de Spring Boot que se obtiene al crear la conexión de servicio.

Servicios de proceso admitidos

Service Connector se puede utilizar para conectar los siguientes servicios de proceso a Azure Blob Storage:

  • Azure App Service
  • Azure Container Apps
  • Funciones de Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de autenticación y tipos de cliente admitidos

En la tabla siguiente se muestran las combinaciones de métodos de autenticación y clientes que se admiten para conectar el servicio de proceso a Azure Blob Storage mediante Service Connector. Un valor "Sí" indica que se admite la combinación, mientras que "No" indica que no se admite.

Tipo de cliente Identidad administrada asignada por el sistema Identidad administrada asignada por el usuario Secreto/cadena de conexión Entidad de servicio
.NET
Java
Java: Spring Boot
Node.js
Python
Go
None

En esta tabla se indica claramente que se admiten todas las combinaciones de tipos de cliente y métodos de autenticación, excepto para el tipo de cliente Java - Spring Boot, que solo admite el método de secreto o cadena de conexión. Todos los demás tipos de cliente pueden utilizar cualquiera de los métodos de autenticación para conectarse a Azure Blob Storage mediante Service Connector.

Nombres de variables de entorno predeterminados o propiedades de aplicación y código de ejemplo

Consulte los detalles de conexión y el código de ejemplo en las tablas siguientes, según el tipo de autenticación y el tipo de cliente de su conexión, para conectar servicios informáticos a Azure Blob Storage. Puede obtener más información sobre la convención de nomenclatura de variables de entorno de Service Connector.

Identidad administrada asignada por el sistema

Cliente de SpringBoot

La autenticación con una identidad administrada asignada por el sistema solo está disponible para Spring Cloud Azure versión 4.0 o posterior.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Si se va a habilitar la identidad administrada True
spring.cloud.azure.storage.blob.account-name Nombre de la cuenta de almacenamiento storage-account-name
spring.cloud.azure.storage.blob.endpoint Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/

Otros clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Blob Storage mediante una identidad administrada asignada por el sistema.

Puede usar azure-identity para autenticarse mediante una identidad administrada o una entidad de servicio. Obtenga la dirección URL del punto de conexión de Azure Blob Storage de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.

Instalar dependencias

dotnet add package Azure.Identity

Este es el código de ejemplo para conectarse a Blob Storage mediante la identidad administrada o la entidad de servicio.

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

Identidad administrada asignada por el usuario

Cliente de SpringBoot

La autenticación con una identidad administrada asignada por el usuario solo está disponible para Spring Cloud Azure versión 4.0 o posterior.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Si se va a habilitar la identidad administrada True
spring.cloud.azure.storage.blob.account-name Nombre de la cuenta de almacenamiento storage-account-name
spring.cloud.azure.storage.blob.endpoint Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id Identificador de cliente de la identidad administrada asignada por el usuario 00001111-aaaa-2222-bbbb-3333cccc4444

Otros clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Id. de cliente <client-ID>

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Blob Storage mediante una identidad administrada asignada por el usuario.

Puede usar azure-identity para autenticarse mediante una identidad administrada o una entidad de servicio. Obtenga la dirección URL del punto de conexión de Azure Blob Storage de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.

Instalar dependencias

dotnet add package Azure.Identity

Este es el código de ejemplo para conectarse a Blob Storage mediante la identidad administrada o la entidad de servicio.

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

Cadena de conexión

Advertencia

Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.

Cliente de SpringBoot

Propiedades de la aplicación Descripción Valor de ejemplo
azure.storage.account-name Nombre de la cuenta de Blob Storage <storage-account-name>
azure.storage.account-key Clave de la cuenta de Blob Storage <account-key>
azure.storage.blob-endpoint Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name El nombre de la cuenta de Blob Storage para Spring Cloud Azure versión 4.0 o posterior <storage-account-name>
spring.cloud.azure.storage.blob.account-key La clave de cuenta de Blob Storage para Spring Cloud Azure versión 4.0 o posterior <account-key>
spring.cloud.azure.storage.blob.endpoint El punto de conexión de Blob Storage para Spring Cloud Azure versión 4.0 o posterior https://<storage-account-name>.blob.core.windows.net/

Otros clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_STORAGEBLOB_CONNECTIONSTRING Cadena de conexión de Blob Storage DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Blob Storage mediante una cadena de conexión.

Obtenga la cadena de conexión de Azure Blob Storage de la variable de entorno agregada por Service Connector.

Instalación de dependencias

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

Entidad de servicio

Cliente de SpringBoot

La autenticación con una entidad de servicio solo está disponible para Spring Cloud Versión 4.0 o posterior.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.storage.blob.account-name Nombre de la cuenta de almacenamiento storage-account-name
spring.cloud.azure.storage.blob.endpoint Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id Id. de cliente de la entidad de servicio 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret Secreto de cliente para realizar la autenticación de la entidad de servicio Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

Otros clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_STORAGEBLOB_RESOURCEENDPOINT Punto de conexión de Blob Storage https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Id. de cliente <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET Secreto de cliente <client-secret>
AZURE_STORAGEBLOB_TENANTID El identificador de inquilino <tenant-ID>

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Blob Storage mediante una entidad de servicio.

Puede usar azure-identity para autenticarse mediante una identidad administrada o una entidad de servicio. Obtenga la dirección URL del punto de conexión de Azure Blob Storage de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.

Instalar dependencias

dotnet add package Azure.Identity

Este es el código de ejemplo para conectarse a Blob Storage mediante la identidad administrada o la entidad de servicio.

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

Pasos siguientes

Para más información sobre Service Connector, siga los tutoriales.