Configuration des chaînes de connexion Stockage AzureConfigure Azure Storage connection strings

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.A connection string includes the authorization information required for your application to access data in an Azure Storage account at runtime using Shared Key authorization. Vous pouvez configurer les chaînes de connexion pour effectuer les opérations suivantes :You can configure connection strings to:

  • Connexion à l’émulateur de stockage AzureConnect to the Azure storage emulator.
  • Accès à un compte de stockage dans AzureAccess a storage account in Azure.
  • Accès aux ressources spécifiées dans Azure via une signature d’accès partagé (SAS).Access specified resources in Azure via a shared access signature (SAS).

Conseil

Le stockage Azure prend en charge les requêtes d’accès à Stockage Blob et File d’attente à l’aide d’Azure Active Directory (Azure AD).Azure Storage supports authorizing requests to Blob and Queue storage using Azure Active Directory (Azure AD). Autoriser des utilisateurs ou des applications à l’aide d’un jeton OAuth 2.0 retourné par Azure AD offre une meilleure sécurité et une plus grande facilité d’utilisation de l’autorisation de clé partagée.Authorizing users or applications using an OAuth 2.0 token returned by Azure AD provides superior security and ease of use over Shared Key authorization. Avec Azure AD, il n’est pas nécessaire de stocker la clé d’accès du compte avec votre code, et risquer des failles de sécurité potentielles.With Azure AD, there is no need to store the account access key with your code and risk potential security vulnerabilities.

De plus, il prend en charge la signature d'accès partagé de délégation d’utilisateur pour le Stockage Blob.Additionally, Azure Storage supports the user delegation shared access signature (SAS) for Blob storage. La SAP de délégation d’utilisateur est signée avec des informations d’identification d’Azure AD.The user delegation SAS is signed with Azure AD credentials. Lorsque la conception de votre application nécessite des signatures d’accès partagé pour être en mesure d’accéder au Stockage Blob, utilisez les informations d’identification Azure AD pour créer une SAP de délégation d’utilisateur pour profiter d’une sécurité supérieure.When your application design requires shared access signatures for access to Blob storage, use Azure AD credentials to create a user delegation SAS for superior security.

Dans la mesure du possible, Microsoft recommande d’utiliser Azure AD avec les applications du stockage Azure.Microsoft recommends using Azure AD with your Azure Storage applications when possible. Pour plus d’informations, consultez Autoriser l’accès aux objets blob et files d’attente Azure à l’aide d’Azure Active Directory.For more information, see Authorize access to Azure blobs and queues using Azure Active Directory.

Important

Votre clé de compte de stockage est similaire au mot de passe racine pour votre compte de stockage.Your storage account key is similar to the root password for your storage account. Veillez toujours à protéger votre clé de compte.Always be careful to protect your account key. Évitez de la communiquer à d’autres utilisateurs, de la coder en dur ou de l’enregistrer en texte brut dans un emplacement accessible à d’autres personnes.Avoid distributing it to other users, hard-coding it, or saving it anywhere in plaintext that is accessible to others. Régénérez votre clé de compte à l’aide du Portail Azure si vous pensez que sa confidentialité est compromise.Regenerate your account key using the Azure portal if you believe it may have been compromised.

Les jetons de signature d'accès partagé (SAS) sont essentiels à la protection, tout comme les clés d'accès au compte.SAS (Shared Access Signature) tokens are critical to protect just like the account access keys. Outre la granularité qu'elle fournit, la signature d'accès partagé permet aux clients d'accéder aux ressources de votre compte de stockage et ne doit pas être partagée publiquement.While providing granularity SAS grants clients access to the resources in your storage account and should not be shared publicly. Lorsqu'un partage est requis à des fins de résolution des problèmes, pensez à utiliser une version expurgée de tous les fichiers journaux ou à supprimer les jetons SAS (le cas échéant) des fichiers journaux. Vérifiez également que les captures d'écran ne contiennent pas d'informations SAS.When sharing is required for troubleshooting reasons consider using a redacted version of any log files or deleting the SAS tokens (if present) from the log files, and make sure the screenshots don't contain the SAS information either.

Afficher et copier une chaîne de connexionView and copy a connection string

Pour afficher et copier les clés d’accès ou la chaîne de connexion de votre compte de stockage à partir du portail Azure :To view and copy your storage account access keys or connection string from the Azure portal:

  1. Accédez au portail Azure.Navigate to the Azure portal.

  2. Recherchez votre compte de stockage.Locate your storage account.

  3. Dans la section Paramètres de la présentation du compte de stockage, sélectionnez Clés d’accès.In the Settings section of the storage account overview, select Access keys. Vos clés d’accès au compte s’affichent, ainsi que la chaîne de connexion complète de chaque clé.Your account access keys appear, as well as the complete connection string for each key.

  4. Recherchez la valeur de Clé sous clé1, puis cliquez sur le bouton Copier pour copier la clé de compte.Find the Key value under key1, and click the Copy button to copy the account key.

  5. Vous pouvez aussi copier la chaîne de connexion complète.Alternately, you can copy the entire connection string. Recherchez la valeur de Chaîne de connexion sous clé1, puis cliquez sur le bouton Copier pour copier la chaîne de connexion.Find the Connection string value under key1, and click the Copy button to copy the connection string.

    Capture d’écran montrant comment afficher les clés d’accès sur le portail Azure

Stocker une chaîne de connexionStore a connection string

Votre application doit accéder à la chaîne de connexion pendant l’exécution pour autoriser les requêtes transmises au stockage Azure.Your application needs to access the connection string at runtime to authorize requests made to Azure Storage. Plusieurs options vous permettant de stocker votre chaîne de connexion s’offrent à vous :You have several options for storing your connection string:

  • Vous pouvez stocker votre chaîne de connexion dans une variable d’environnement.You can store your connection string in an environment variable.
  • Une application s’exécutant sur le bureau ou sur un appareil peut stocker la chaîne de connexion dans un fichier app.config ou web.config.An application running on the desktop or on a device can store the connection string in an app.config or web.config file. Ajoutez la chaîne de connexion dans la section AppSettings de ces fichiers.Add the connection string to the AppSettings section in these files.
  • Une application s’exécutant dans un service cloud Azure peut stocker la chaîne de connexion dans le schéma de configuration du service Azure (fichier .cscfg).An application running in an Azure cloud service can store the connection string in the Azure service configuration schema (.cscfg) file. Ajoutez la chaîne de connexion à la section ConfigurationSettings du fichier de configuration du service.Add the connection string to the ConfigurationSettings section of the service configuration file.

Le stockage de votre chaîne de connexion dans un fichier de configuration facilite la mise à jour de la chaîne de connexion qui vous permet de basculer entre l’émulateur de stockage et un compte de stockage Azure dans le cloud.Storing your connection string in a configuration file makes it easy to update the connection string to switch between the storage emulator and an Azure storage account in the cloud. Il vous suffit de modifier la chaîne de connexion pour la faire pointer vers votre environnement cible.You only need to edit the connection string to point to your target environment.

Vous pouvez utiliser Microsoft Azure Configuration Manager pour accéder à votre chaîne de connexion lors de l’exécution, quel que soit l’environnement d’exécution de votre application.You can use the Microsoft Azure Configuration Manager to access your connection string at runtime regardless of where your application is running.

Configurer une chaîne de connexion pour l’émulateur de stockageConfigure a connection string for the storage emulator

L’émulateur de stockage prend en charge uniquement un compte fixe et une clé d’authentification connue pour l’authentification par clé partagée.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Ce compte et cette clé sont les seules informations d’identification par clé partagée autorisées pour une utilisation avec l’émulateur de stockage.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Il s'agit de :They are:

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

Notes

La clé d'authentification prise en charge par l'émulateur de stockage est destinée uniquement au test de la fonctionnalité de votre code d'authentification du client.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Elle n'offre aucune fonction de sécurité.It does not serve any security purpose. Vous ne pouvez pas utiliser votre compte et votre clé de stockage de production avec l'émulateur de stockage.You cannot use your production storage account and key with the storage emulator. Vous ne devez pas utiliser le compte de développement avec des données de production.You should not use the development account with production data.

L’émulateur de stockage prend uniquement en charge la connexion via le protocole HTTP.The storage emulator supports connection via HTTP only. Toutefois, HTTPS est le protocole recommandé pour l’accès aux ressources dans un compte de Stockage Azure de production.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Se connecter au compte de l’émulateur à l’aide d’un raccourciConnect to the emulator account using a shortcut

Le moyen le plus simple de vous connecter à l’émulateur de stockage à partir de votre application est de configurer une chaîne de connexion dans le fichier de configuration de votre application qui référence le raccourci UseDevelopmentStorage=true.The easiest way to connect to the storage emulator from your application is to configure a connection string in your application's configuration file that references the shortcut UseDevelopmentStorage=true. Voici un exemple de chaîne de connexion à l’émulateur de stockage dans un fichier app.config :Here's an example of a connection string to the storage emulator in an app.config file:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

Se connecter au compte de l’émulateur à l’aide d’un nom de compte connu et d’une cléConnect to the emulator account using the well-known account name and key

Pour créer une chaîne de connexion qui référence le nom et la clé du compte de l’émulateur, vous devez définir les points de terminaison associés aux services que vous souhaitez utiliser à partir de l’émulateur dans la chaîne de connexion.To create a connection string that references the emulator account name and key, you must specify the endpoints for each of the services you wish to use from the emulator in the connection string. Cela est nécessaire pour que la chaîne de connexion puisse référencer les points de terminaison de l’émulateur, qui sont différents de ceux associés à un compte de stockage de production.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Par exemple, la valeur de votre chaîne de connexion ressemblera à ceci :For example, the value of your connection string will look like this:

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

Cette valeur est identique au raccourci présenté plus haut, UseDevelopmentStorage=true.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Spécifier un proxy HTTPSpecify an HTTP proxy

Vous pouvez aussi spécifier un proxy HTTP à utiliser lorsque vous testez votre service sur l’émulateur de stockage.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Cela peut être utile pour observer les demandes et les réponses HTTP pendant que vous déboguez des opérations sur les services de stockage.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Pour spécifier un proxy, ajoutez l’option DevelopmentStorageProxyUri à la chaîne de connexion, puis définissez sa valeur sur l’URI du proxy.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Voici par exemple une chaîne de connexion qui pointe vers l’émulateur de stockage et configure un proxy HTTP :For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

Pour plus d’informations sur l’émulateur de stockage, consultez Utilisation de l'émulateur de stockage Azure pour le développement et le test.For more information about the storage emulator, see Use the Azure storage emulator for development and testing.

Configurer une chaîne de connexion pour un compte de stockage AzureConfigure a connection string for an Azure storage account

Pour créer une chaîne de connexion pour votre compte de stockage Azure, utilisez le format suivant.To create a connection string for your Azure storage account, use the following format. 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 :Indicate whether you want to connect to the storage account through HTTPS (recommended) or HTTP, replace myAccountName with the name of your storage account, and replace myAccountKey with your account access key:

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

Par exemple, votre chaîne de connexion peut ressembler à ceci :For example, your connection string might look similar to:

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.Although Azure Storage supports both HTTP and HTTPS in a connection string, HTTPS is highly recommended.

Conseil

Vous trouverez les chaînes de connexion de votre compte de stockage dans le portail Azure.You can find your storage account's connection strings in the Azure portal. Accédez à PARAMÈTRES > Clés d’accès dans le panneau de menu de votre compte de stockage pour afficher les chaînes de connexion pour les clés d’accès primaire et secondaire.Navigate to SETTINGS > Access keys in your storage account's menu blade to see connection strings for both primary and secondary access keys.

Création d’une chaîne de connexion à l’aide d’une signature d’accès partagéCreate a connection string using a shared access signature

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.If you possess a shared access signature (SAS) URL that grants you access to resources in a storage account, you can use the SAS in a connection string. É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.Because the SAS contains the information required to authenticate the request, a connection string with a SAS provides the protocol, the service endpoint, and the necessary credentials to access the resource.

Pour créer une chaîne de connexion incluant une signature d’accès partagé, spécifiez la chaîne au format suivant :To create a connection string that includes a shared access signature, specify the string in the following format:

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.Each service endpoint is optional, although the connection string must contain at least one.

Notes

Il est recommandé d’utiliser le protocole HTTPS avec une SAS.Using HTTPS with a SAS is recommended as a best practice.

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.If you are specifying a SAS in a connection string in a configuration file, you may need to encode special characters in the URL.

Exemple de SAP de serviceService SAS example

Voici un exemple de chaîne de connexion incluant la SAS d’un service pour Blob Storage :Here's an example of a connection string that includes a service SAS for 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 caractères spéciaux :And here's an example of the same connection string with encoding of special characters:

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 compteAccount SAS example

Voici un exemple de chaîne de connexion incluant la SAS d’un compte pour Blob Storage et File Storage.Here's an example of a connection string that includes an account SAS for Blob and File storage. Notez que les points de terminaison des deux services sont spécifiés :Note that endpoints for both services are specified:

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 :And here's an example of the same connection string with URL encoding:

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 expliciteCreate a connection string for an explicit storage endpoint

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.You can specify explicit service endpoints in your connection string instead of using the default endpoints. 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 :To create a connection string that specifies an explicit endpoint, specify the complete service endpoint for each service, including the protocol specification (HTTPS (recommended) or HTTP), in the following format:

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.One scenario where you might wish to specify an explicit endpoint is when you've mapped your Blob storage endpoint to a custom domain. Dans ce cas, vous pouvez spécifier votre point de terminaison personnalisé pour le stockage Blob dans votre chaîne de connexion.In that case, you can specify your custom endpoint for Blob storage in your connection string. Vous pouvez éventuellement spécifier les points de terminaison par défaut pour les autres services si votre application les utilise.You can optionally specify the default endpoints for the other services if your application uses them.

Voici un exemple de chaîne de connexion qui spécifie un point de terminaison explicite pour le service Blob :Here is an example of a connection string that specifies an explicit endpoint for the Blob service:

# 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 :This example specifies explicit endpoints for all services, including a custom domain for the Blob service:

# 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.The endpoint values in a connection string are used to construct the request URIs to the storage services, and dictate the form of any URIs that are returned to your 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.If you've mapped a storage endpoint to a custom domain and omit that endpoint from a connection string, then you will not be able to use that connection string to access data in that service from your code.

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://.Service endpoint values in your connection strings must be well-formed URIs, including https:// (recommended) or http://. Étant donné que le stockage Azure ne prend pas encore en charge HTTPS pour les domaines personnalisés, vous devez spécifier http:// pour n’importe quel URI de point de terminaison qui pointe vers un domaine personnalisé.Because Azure Storage does not yet support HTTPS for custom domains, you must specify http:// for any endpoint URI that points to a custom domain.

Création d’une chaîne de connexion avec un suffixe de point de terminaisonCreate a connection string with an endpoint suffix

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, comme pour Azure China 21Vianet ou Azure Government, utilisez le format de chaîne de connexion suivant.To create a connection string for a storage service in regions or instances with different endpoint suffixes, such as for Azure China 21Vianet or Azure Government, use the following connection string format. 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 :Indicate whether you want to connect to the storage account through HTTPS (recommended) or HTTP, replace myAccountName with the name of your storage account, replace myAccountKey with your account access key, and replace mySuffix with the URI suffix:

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

Voici un exemple de chaîne de connexion pour des services de stockage dans Azure China 21Vianet :Here's an example connection string for storage services in Azure China 21Vianet:

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

Analyse d’une chaîne de connexionParsing a connection string

La Bibliothèque Microsoft Azure Configuration Manager pour .NET que vous avez référencée ci-dessus fournit une classe pour l’analyse d’une chaîne de connexion à partir d’un fichier de configuration.The Microsoft Azure Configuration Manager Library for .NET provides a class for parsing a connection string from a configuration file. La classe CloudConfigurationManager analyse les paramètres de configuration, que l’application cliente soit exécutée sur le Bureau, sur un appareil mobile, dans une machine virtuelle Azure ou dans un service cloud Azure.The CloudConfigurationManager class parses configuration settings regardless of whether the client application is running on the desktop, on a mobile device, in an Azure virtual machine, or in an Azure cloud service.

Pour référencer le package CloudConfigurationManager, ajoutez la directive using suivante :To reference the CloudConfigurationManager package, add the following using directive:

using Microsoft.Azure; //Namespace for CloudConfigurationManager
using Microsoft.Azure.Storage;

Voici un exemple indiquant comment récupérer une chaîne de connexion d’un fichier de configuration :Here's an example that shows how to retrieve a connection string from a configuration file:

// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

L’utilisation d’Azure Configuration Manager est facultative.Using the Azure Configuration Manager is optional. Vous pouvez également utiliser une API comme la classe ConfigurationManager de .NET Framework.You can also use an API like the .NET Framework's ConfigurationManager class.

Étapes suivantesNext steps