Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un connection string inclut les informations d’autorisation requises pour que votre application accède aux données d’un compte Azure Storage lors de l’exécution à l’aide de l’autorisation de clé partagée. Vous pouvez configurer les chaînes de connexion pour effectuer les opérations suivantes :
- Connectez-vous à l’émulateur de stockage Azure.
- Accédez à un compte de stockage dans Azure.
- Accéder aux ressources spécifiées dans Azure via une signature d’accès partagé (SAP).
Pour savoir comment afficher vos clés d’accès de compte et copier une chaîne de connexion, consultez Gérer les clés d’accès du compte de stockage.
Important
Pour une sécurité optimale, Microsoft recommande d’utiliser Microsoft Entra ID avec des identités gérées pour autoriser les demandes sur les données de blob, de table et de file d’attente, autant que possible. L’autorisation avec Microsoft Entra ID et les identités managées offre une sécurité et une facilité d’utilisation supérieures sur l’autorisation de clé partagée. Pour en savoir plus sur les identités managées, consultez Quelles sont les identités managées pour les ressources Azure. Pour obtenir un exemple d’activation et d’utilisation d’une identité managée pour une application .NET, consultez Authenticating Azure-hosted apps to Azure resources with .NET.
Pour les ressources hébergées en dehors de Azure, telles que les applications locales, vous pouvez utiliser des identités managées via Azure Arc. Par exemple, les applications s’exécutant sur des serveurs Azure Arc peuvent utiliser des identités managées pour se connecter à Azure services. Pour plus d’informations, consultez Authentification sur les ressources Azure avec des serveurs Azure Arc.
Pour les scénarios où les signatures d’accès partagé (SAP) sont utilisées, Microsoft recommande d’utiliser une SAP de délégation d’utilisateur. Une signature d'accès partagé (SAP) de délégation d’utilisateur est sécurisée avec des informations d’identification Microsoft Entra, au lieu de la clé de compte. Pour en savoir plus sur les signatures d’accès partagé, consultez Accorder un accès limité aux données avec des signatures d’accès partagé. Pour obtenir un exemple de création et d’utilisation d’une SAP de délégation d’utilisateur avec .NET, consultez Créer une SAP de délégation d’utilisateur pour un objet blob avec .NET.
Protégez vos clés d’accès
Les clés d’accès au compte de stockage fournissent un accès complet aux données du compte de stockage et la possibilité de générer des jetons SAP. Veillez toujours à protéger vos clés d’accès. Utilisez Azure Key Vault pour gérer et faire pivoter vos clés en toute sécurité. L’accès à la clé partagée accorde à un utilisateur un accès complet aux données d’un compte de stockage. L’accès aux clés partagées doit être soigneusement limité et surveillé. Utilisez des jetons SAS de délégation d'utilisateur 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
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é. Pour les scénarios qui prennent en charge OAuth, l’autorisation basée sur Microsoft Entra ID à l’aide d’identités managées doit être utilisée. Kerberos doit être utilisé pour Azure Files sur SMB. Pour Azure Files sur REST, les 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 par clé partagée pour un compte de stockage Azure.
Pour protéger un compte Azure Storage avec des stratégies Microsoft Entra Conditional Access, 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, consultez Accès approuvé pour les ressources inscrites dans votre tenant Microsoft Entra.
Stocker une chaîne de connexion
Votre application doit accéder au connection string au moment de l’exécution pour autoriser les demandes adressées à Azure Storage. Vous avez plusieurs options pour stocker vos clés d’accès de compte ou connection string :
- Microsoft recommande d’utiliser Microsoft Entra ID pour autoriser l’accès à Azure Storage au lieu des clés de compte. Si vous devez utiliser des clés de compte, stockez-les en toute sécurité dans Azure Key Vault. Pour plus d’informations, consultez Autoriser l’accès aux données dans Azure Storage.
- Vous pouvez stocker votre connection string dans une variable d’environnement.
- Une application peut stocker le connection string dans un fichier app.config ou web.config. Ajoutez le connection string à la section AppSettings dans ces fichiers.
Avertissement
Le stockage des clés d’accès de votre compte ou connection string 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 Microsoft Entra autorisation d’accès à votre compte de stockage.
Configurer un connection string 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==
Note
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 accéder 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 se connecter à l'émulateur à partir de votre application consiste à configurer un connection string dans le fichier de configuration de votre application qui fait référence au raccourci UseDevelopmentStorage=true. Le raccourci équivaut à la connection string complète de 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 Azure Storage :
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 d’une méthode qui prend un connection string. Par exemple, le constructeur BlobContainerClient(String, String) prend un connection string.
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 Utilisez l’émulateur Azurite pour le développement Azure Storage local.
Configurer un connection string pour un compte de stockage Azure
Pour créer un connection string 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 connection string peut ressembler à ce qui suit :
DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>
Bien que Azure Storage prenne en charge HTTP et HTTPS dans un connection string, HTTPS est vivement recommandé.
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éer un connection string à l’aide d’une signature d’accès partagé
Si vous possédez une URL de signature d’accès partagé (SAP) qui vous accorde l’accès aux ressources d’un compte de stockage, vous pouvez utiliser la signature d’accès partagé dans un connection string. Étant donné que la SAP contient les informations requises pour authentifier la demande, un connection string 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 un connection string 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, même si le connection string doit contenir au moins un point de terminaison.
Note
Il est recommandé d’utiliser le protocole HTTPS avec une SAS.
Si vous spécifiez un SAS dans une chaîne de connexion d'un fichier de configuration, vous devrez peut-être encoder des caractères spéciaux dans l’URL.
Exemple de service SaaS
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
Voici un exemple de la même connection string avec encodage d'URL :
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&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
Voici un exemple de la même connection string avec encodage d'URL :
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
Créer un connection string pour un point de terminaison de stockage explicite
Vous pouvez spécifier des points de terminaison de service explicites dans votre connection string au lieu d’utiliser les points de terminaison par défaut. Pour créer un connection string qui spécifie un point de terminaison explicite, spécifiez le point de terminaison de service complet pour chaque service, y compris la spécification du 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 connection string 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 de point de terminaison d’un connection string sont utilisées pour construire les URI de requête aux services de stockage et dicter la forme des URI retournés à votre code.
Si vous avez mappé un point de terminaison de stockage à un domaine personnalisé et omis ce point de terminaison à partir d'un connection string, vous ne pourrez pas utiliser cette connection string pour accéder aux données de ce service à partir de votre code.
Pour plus d’informations sur la configuration d’un domaine personnalisé pour Azure Storage, consultez Maper un domaine personnalisé à un point de terminaison Azure Blob Storage.
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éer un connection string avec un suffixe de point de terminaison
Pour créer un connection string pour un service de stockage dans des régions ou des instances avec différents suffixes de point de terminaison, tels que pour Microsoft Azure gérés par 21Vianet ou Azure Government, utilisez le format connection string 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 connection string pour les services de stockage dans Azure gérés 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 à Azure Storage avec la clé de compte ou avec un connection string, consultez l’un des articles suivants :
- Autoriser l'accès et se connecter à Blob Storage avec .NET
- Autoriser l'accès et se connecter à Blob Storage avec Java
- Autorisez l'accès et connectez-vous à Blob Storage avec JavaScript
- Autoriser l'accès et se connecter au stockage Blob avec Python