Configuration des chaînes de connexion Stockage Azure

Une chaîne de connexion inclut les informations d’authentification nécessaires pour que l’application accède aux données dans un compte de stockage Azure, à l’aide de l’autorisation Clé partagée pendant l’exécution. Vous pouvez configurer les chaînes de connexion pour effectuer les opérations suivantes :

  • Connectez-vous à l’émulateur de stockage Azure.
  • Accès à un compte de stockage dans Azure
  • Accès aux ressources spécifiées dans Azure via une signature d’accès partagé (SAS).

Pour savoir comment afficher les clés d’accès de votre compte et copier une chaîne de connexion, consultez Gérer les clés d’accès au compte de stockage.

Protégez vos clés d’accès

Les clés d’accès au compte de stockage fournissent un accès complet à la configuration d’un compte de stockage, ainsi qu’aux données. Veillez toujours à protéger vos clés d’accès. Utilisez Azure Key Vault pour gérer et effectuer la rotation de vos clés en toute sécurité. L’accès à la clé partagée accorde à un utilisateur un accès complet à la configuration d’un compte de stockage et à ses données. L’accès aux clés partagées doit être soigneusement limité et surveillé. Utilisez des jetons SAS avec une étendue d’accès limitée dans les scénarios où l’autorisation basée sur Microsoft Entra ID ne peut pas être utilisée. Évitez le codage effectué de manière irréversible des clés d’accès ou de les enregistrer en texte brut dans un emplacement accessible à d’autres personnes. Effectuez une rotation de vos clés si vous pensez qu’elles ont pu être compromises.

Important

Microsoft recommande d’utiliser Microsoft Entra ID pour autoriser les demandes sur les données de blob, de file d’attente et de table si possible, au lieu d’utiliser les clés de compte (autorisation de clé partagée). L’autorisation avec Microsoft Entra ID offre davantage de sécurité et de facilité d’utilisation sur l’autorisation de clé partagée. Pour plus d’informations sur l’utilisation de l’autorisation Microsoft Entra à partir de vos applications, consultez Comment authentifier des applications .NET dans les services Azure. Pour les partages de fichiers SMB Azure, Microsoft recommande d’utiliser l’intégration Active Directory Domain Services (AD DS) locale ou l’authentification Microsoft Entra Kerberos.

Pour empêcher les utilisateurs d’accéder aux données de votre compte de stockage avec une clé partagée, vous pouvez interdire l’autorisation de clé partagée pour le compte de stockage. L’accès granulaire aux données avec le moins de privilèges nécessaires est recommandé en tant que meilleure pratique de sécurité. L’autorisation basée sur Microsoft Entra ID doit être utilisée dans les scénarios qui prennent en charge OAuth. Kerberos ou SMTP doit être utilisé pour Azure Files sur SMB. Pour Azure Files sur REST, des jetons SAP peuvent être utilisés. L’accès à la clé partagée doit être désactivé s’il n’est pas nécessaire pour empêcher son utilisation par inadvertance. Pour plus d’informations, consultez Empêcher l’autorisation avec clé partagée pour un compte de stockage Azure.

Pour protéger un compte de stockage Azure avec des stratégies d’accès conditionnel Microsoft Entra, vous devez interdire l’autorisation de clé partagée pour le compte de stockage.

Si vous avez désactivé l’accès à la clé partagée et que l’autorisation de clé partagée est signalée dans les journaux de diagnostic, cela signifie que l’accès approuvé est utilisé pour accéder au stockage. Pour plus d’informations, voir Accès approuvé pour les ressources inscrites dans votre abonnement.

Stocker une chaîne de connexion

Votre application doit accéder à la chaîne de connexion pendant l’exécution pour autoriser les requêtes transmises au stockage Azure. Plusieurs options vous permettant de stocker vos clés d’accès au compte ou votre chaîne de connexion s’offrent à vous :

  • Vous pouvez stocker vos clés de compte en toute sécurité dans Azure Key Vault. Pour plus d’informations, consultez À propos des clés de compte de stockage managées Azure Key Vault.
  • Vous pouvez stocker votre chaîne de connexion dans une variable d’environnement.
  • Une application peut stocker la chaîne de connexion dans un fichier app.config ou web.config. Ajoutez la chaîne de connexion dans la section AppSettings de ces fichiers.

Avertissement

Le stockage de vos clés d’accès de compte ou chaîne de connexion en texte clair présente un risque de sécurité et n’est pas recommandé. Stockez vos clés de compte dans un format chiffré ou migrez vos applications pour utiliser l’autorisation Microsoft Entra afin d’accéder à votre compte de stockage.

Configurer une chaîne de connexion pour Azurite

L’émulateur prend en charge un unique compte fixe et une clé d’authentification connue pour l’authentification par clé partagée. Ce compte et cette clé sont les seules informations d’identification de la clé partagée dont l’utilisation est autorisée avec l’émulateur. Il s'agit de :

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Notes

La clé d’authentification prise en charge par l’émulateur est destinée uniquement au test de la fonctionnalité du code d’authentification client. Elle n'offre aucune fonction de sécurité. Vous ne pouvez pas utiliser votre compte de stockage de production ni votre clé avec l’émulateur. Vous ne devez pas utiliser le compte de développement avec des données de production.

L’émulateur ne prend en charge que la connexion via le protocole HTTP. Toutefois, HTTPS est le protocole recommandé pour l’accès aux ressources dans un compte de Stockage Azure de production.

Connexion au compte de l’émulateur à l’aide du raccourci

Le moyen le plus simple de vous connecter à l’émulateur à partir de votre application est de configurer une chaîne de connexion faisant référence au raccourci UseDevelopmentStorage=true dans le fichier de configuration de votre application. Ce raccourci est l’équivalent de la chaîne de connexion complète pour l’émulateur, qui spécifie le nom du compte, la clé de compte et les points de terminaison de l’émulateur pour chacun des services Stockage Azure :

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

L’extrait de code .NET suivant montre comment utiliser le raccourci à partir d’une méthode qui prend une chaîne de connexion. Par exemple, le constructeur BlobContainerClient(String, String) prend une chaîne de connexion.

BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();

Vérifiez que l’émulateur est en cours d’exécution avant d’appeler le code dans l’extrait de code.

Pour plus d’informations sur Azurite, consultez Utiliser l’émulateur Azurite à des fins de développement local pour Stockage Azure.

Configurer une chaîne de connexion pour un compte de stockage Azure

Pour créer une chaîne de connexion pour votre compte de stockage Azure, utilisez le format suivant. Indiquez si vous souhaitez vous connecter au compte de stockage via HTTPS (recommandé) ou HTTP, remplacez myAccountName par le nom de votre compte de stockage et remplacez myAccountKey par la touche d’accès rapide à votre compte :

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

Par exemple, votre chaîne de connexion peut ressembler à ceci :

DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>

Même si le stockage Azure prend en charge HTTP et HTTPS au sein d’une chaîne de connexion, nous vous conseillons vivement d’utiliser HTTPS.

Conseil

Vous trouverez les chaînes de connexion de votre compte de stockage dans le portail Azure. Accédez à Sécurité + mise en réseau>Clés d’accès dans les définitions de votre compte de stockage pour afficher les chaînes de connexion pour les clés d’accès primaire et secondaire.

Création d’une chaîne de connexion à l’aide d’une signature d’accès partagé

Si vous disposez d’une URL de signature d’accès partagé (SAP) qui vous permet d’accéder aux ressources d’un compte de stockage, vous pouvez utiliser la SAP dans une chaîne de connexion. Étant donné que la SAP contient les informations requises pour authentifier la requête, une chaîne de connexion avec une SAP fournit le protocole, le point de terminaison de service et les informations d’identification nécessaires pour accéder à la ressource.

Pour créer une chaîne de connexion incluant une signature d’accès partagé, spécifiez la chaîne au format suivant :

BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken

Chaque point de terminaison de service est facultatif, mais la chaîne de connexion doit en contenir au moins un.

Notes

Il est recommandé d’utiliser le protocole HTTPS avec une SAS.

Si vous spécifiez une SAS dans une chaîne de connexion dans un fichier de configuration, vous devrez encoder les caractères spéciaux dans l’URL.

Exemple de SAP de service

Voici un exemple de chaîne de connexion incluant la SAS d’un service pour Blob Storage :

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Et voici un exemple de la même chaîne de connexion avec encodage de l’URL :

BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D

Exemple de SAP de compte

Voici un exemple de chaîne de connexion incluant la SAS d’un compte pour Blob Storage et File Storage. Notez que les points de terminaison des deux services sont spécifiés :

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl

Et voici un exemple de la même chaîne de connexion avec encodage de l’URL :

BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;sp=rwl

Création d’une chaîne de connexion pour un point de terminaison de stockage explicite

Vous pouvez spécifier les points de terminaison de service explicites dans votre chaîne de connexion au lieu d’utiliser les points de terminaison par défaut. Pour créer une chaîne de connexion spécifiant un point de terminaison explicite, indiquez le point de terminaison complet de chaque service, ainsi que le protocole (HTTPS (recommandé) ou HTTP) au format suivant :

DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey

Si vous avez mappé votre point de terminaison Stockage Blob à un domaine personnalisé, il vaut mieux spécifier un point de terminaison explicite. Dans ce cas, vous pouvez spécifier votre point de terminaison personnalisé pour le stockage Blob dans votre chaîne de connexion. Vous pouvez éventuellement spécifier les points de terminaison par défaut pour les autres services si votre application les utilise.

Voici un exemple de chaîne de connexion qui spécifie un point de terminaison explicite pour le service Blob :

# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>

Cet exemple spécifie des points de terminaison explicites pour tous les services, notamment un domaine personnalisé pour le service Blob :

# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>

Les valeurs des points de terminaison dans une chaîne de connexion sont utilisées pour construire les URI de demande aux services de stockage. Elles indiquent la forme des URI renvoyés à votre code.

Si vous avez mappé un point de terminaison de stockage à un domaine personnalisé et omettez ce point de terminaison d’une chaîne de connexion, vous ne pourrez pas accéder aux données de ce service avec votre code à l’aide de cette chaîne de connexion.

Pour plus d’informations sur la configuration d’un domaine personnalisé pour Azure Storage, consultez Mapper un domaine personnalisé à un point de terminaison de stockage Blob Azure.

Important

Les valeurs des points de terminaison de service dans vos chaînes de connexion doivent être des URI correctement formés, notamment https:// (recommandé) ou http://.

Création d’une chaîne de connexion avec un suffixe de point de terminaison

Pour créer une chaîne de connexion d’un service de stockage dans les régions ou les instances, avec des suffixes de point de terminaison différents, à l’exemple de Microsoft Azure géré par 21Vianet ou Azure Government, utilisez le format de chaîne de connexion suivant. Indiquez si vous souhaitez vous connecter au compte de stockage via HTTPS (recommandé) ou HTTP, remplacez myAccountName par le nom de votre compte de stockage, remplacez myAccountKey par votre clé d’accès au compte et remplacez mySuffix par le suffixe d’URI :

DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;

Voici un exemple de chaîne de connexion pour des services de stockage dans Microsoft Azure géré par 21Vianet :

DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;

Autorisation de l’accès avec une clé partagée

Pour savoir comment autoriser l’accès au Stockage Azure avec la clé de compte ou une chaîne de connexion, consultez l’un des articles suivants :

Étapes suivantes