Partager via


Intégrer Stockage Blob Azure avec Service Connector

Cette page affiche les types d’authentification pris en charge, les types de clients et un exemple de code de Stockage Blob Azure utilisant le connecteur de services. Cette page présente également les noms et les valeurs des variables d’environnement par défaut (ou configuration Spring Boot) que vous obtenez lorsque vous créez des connexions de service.

Service de calcul pris en charge

Le connecteur de services peut être utilisé pour connecter les services de calcul suivants à Stockage Blob Azure :

  • Azure App Service
  • Azure Container Apps
  • Azure Functions
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Types d’authentification et de clients pris en charge

Le tableau ci-dessous montre les combinaisons de méthodes et de clients d’authentification prises en charge pour connecter votre service de calcul à Stockage Blob Azure en utilisant le connecteur de services. « Oui » indique que la combinaison est prise en charge, tandis que « Non » indique qu’elle n’est pas prise en charge.

Type de client Identité managée affectée par le système Identité managée affectée par l’utilisateur Secret / chaîne de connexion Principal du service
.NET Oui Oui Oui Oui
Java Oui Oui Oui Oui
Java - Spring Boot Oui Oui Oui Oui
Node.js Oui Oui Oui Oui
Python Oui Oui Oui Oui
Go Oui Oui Oui Oui
Aucun Oui Oui Oui Oui

Ce tableau indique clairement que toutes les combinaisons de types de clients et de méthodes d’authentification sont prises en charge, à l’exception du type de client Java – Spring Boot, qui prend uniquement en charge la méthode Secret/chaîne de connexion. Tous les autres types de clients peuvent utiliser toutes les méthodes d’authentification pour se connecter à Stockage Blob Azure en utilisant le connecteur de services.

Noms des variables d’environnement par défaut ou propriétés de l’application et exemple de code

Référencez les détails de connexion et l’exemple de code dans les tableaux suivants, en fonction du type d’authentification et du type client de votre connexion, pour connecter des services de calcul à Stockage Blob Azure. Vous pouvez en savoir plus sur la convention d’affectation des noms des variables de Service Connector.

Identité managée affectée par le système

Client SpringBoot

L’authentification avec une identité managée affectée par le système est disponible uniquement pour Spring Cloud Azure version 4.0 ou ultérieure.

Nom de variable d’environnement par défaut Description Valeur d'exemple
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Indique s’il faut activer l’identité managée True
spring.cloud.azure.storage.blob.account-name Nom du compte de stockage storage-account-name
spring.cloud.azure.storage.blob.endpoint Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/

Autres clients

Nom de variable d’environnement par défaut Description Valeur d'exemple
AZURE_STORAGEBLOB_RESOURCEENDPOINT Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Stockage Blob Azure en utilisant une identité managée affectée par le système.

Vous pouvez utiliser azure-identity pour vous authentifier via une identité managée ou un principal de service. Obtenez l’URL du point de terminaison Stockage Blob Azure à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

Installer des dépendances

dotnet add package Azure.Identity

Voici un exemple de code permettant de se connecter à Stockage Blob à l’aide d’une identité managée ou d’un principal de service.

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é managée affectée par l’utilisateur

Client SpringBoot

L’authentification avec une identité managée affectée par l’utilisateur est disponible seulement pour Azure Spring Cloud version 4.0 ou ultérieure.

Nom de variable d’environnement par défaut Description Valeur d'exemple
spring.cloud.azure.storage.blob.credential.managed-identity-enabled Indique s’il faut activer l’identité managée True
spring.cloud.azure.storage.blob.account-name Nom du compte de stockage storage-account-name
spring.cloud.azure.storage.blob.endpoint Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID client de l’identité managée affectée par l’utilisateur 00001111-aaaa-2222-bbbb-3333cccc4444

Autres clients

Nom de variable d’environnement par défaut Description Valeur d'exemple
AZURE_STORAGEBLOB_RESOURCEENDPOINT Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Votre ID client <client-ID>

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Stockage Blob Azure en utilisant une identité managée affectée par l’utilisateur.

Vous pouvez utiliser azure-identity pour vous authentifier via une identité managée ou un principal de service. Obtenez l’URL du point de terminaison Stockage Blob Azure à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

Installer des dépendances

dotnet add package Azure.Identity

Voici un exemple de code permettant de se connecter à Stockage Blob à l’aide d’une identité managée ou d’un principal de service.

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

Avertissement

Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.

Client SpringBoot

Propriétés de l’application Description Valeur d'exemple
azure.storage.account-name Nom de votre compte Stockage Blob <storage-account-name>
azure.storage.account-key Clé de votre compte Stockage Blob <account-key>
azure.storage.blob-endpoint Point de terminaison de votre Stockage Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.account-name Nom de votre compte Stockage Blob pour Azure Spring Cloud version 4.0 ou supérieure <storage-account-name>
spring.cloud.azure.storage.blob.account-key Clé de votre compte Stockage Blob pour Azure Spring Cloud version 4.0 ou supérieure <account-key>
spring.cloud.azure.storage.blob.endpoint Votre point de terminaison Stockage Blob pour Azure Spring Cloud version 4.0 ou supérieure https://<storage-account-name>.blob.core.windows.net/

Autres clients

Nom de variable d’environnement par défaut Description Valeur d'exemple
AZURE_STORAGEBLOB_CONNECTIONSTRING Chaîne de connexion Stockage Blob DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Stockage Blob Azure en utilisant une chaîne de connexion.

Obtenez la chaîne de connexion Stockage Blob Azure à partir de la variable d’environnement ajoutée par le connecteur de services.

Installez des dépendances

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

Principal du service

Client SpringBoot

L’authentification avec un principal du service est disponible seulement pour Azure Spring Cloud version 4.0 ou ultérieure.

Nom de variable d’environnement par défaut Description Valeur d'exemple
spring.cloud.azure.storage.blob.account-name Nom du compte de stockage storage-account-name
spring.cloud.azure.storage.blob.endpoint Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/
spring.cloud.azure.storage.blob.credential.client-id ID client du principal de service 00001111-aaaa-2222-bbbb-3333cccc4444
spring.cloud.azure.storage.blob.credential.client-secret Clé secrète client pour effectuer l’authentification du principal de service Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2

Autres clients

Nom de variable d’environnement par défaut Description Valeur d'exemple
AZURE_STORAGEBLOB_RESOURCEENDPOINT Point de terminaison Stockage Blob https://<storage-account-name>.blob.core.windows.net/
AZURE_STORAGEBLOB_CLIENTID Votre ID client <client-ID>
AZURE_STORAGEBLOB_CLIENTSECRET Votre clé secrète client <client-secret>
AZURE_STORAGEBLOB_TENANTID Votre ID d’abonné <tenant-ID>

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Stockage Blob Azure en utilisant un principal de service.

Vous pouvez utiliser azure-identity pour vous authentifier via une identité managée ou un principal de service. Obtenez l’URL du point de terminaison Stockage Blob Azure à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

Installer des dépendances

dotnet add package Azure.Identity

Voici un exemple de code permettant de se connecter à Stockage Blob à l’aide d’une identité managée ou d’un principal de service.

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

Étapes suivantes

Suivez les tutoriels pour en savoir plus sur le connecteur de services.