Exporter (0) Imprimer
Développer tout
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Authentification de l'accès à votre compte de stockage Windows Azure

Mis à jour: février 2014

Chaque demande adressée aux services de stockage Windows Azure doit être authentifiée, sauf s'il s'agit d'une demande anonyme sur un conteneur public ou ses objets BLOB. Les bibliothèques managées Windows Azure simplifient ce processus d'authentification. Il existe deux manières d'authentifier une demande auprès des services de stockage :

  • À l'aide de schémas d'authentification Shared Key ou Shared Key Lite pour les ressources des services d'objet BLOB, de File d'attente et de Table. Ces schémas d'authentification utilisent un HMAC calculé avec l'algorithme SHA-256 et codé en Base64. Le HMAC est construit à partir d'un ensemble de champs associés à la demande. Pour plus d'informations sur le protocole, voir Authentification pour les services de stockage Windows Azure.

  • À l'aide d'une signature d'accès partagé. Une signature d'accès partagé intègre de façon sécurisée les informations d'identification requises pour l'authentification sur l'URI, ainsi que l'adresse de la ressource sollicitée. Dans la mesure où la signature d'accès partagé inclut toutes les données nécessaires pour l'authentification sur l'URI, elle peut être utilisée pour accorder un accès contrôlé à une ressource du service BLOB, de File d'attente ou de Table, et peut être distribuée indépendamment de votre code. Pour plus d'informations sur le protocole, voir Délégation de l'accès avec une signature d'accès partagé (API REST).

Comme mentionné plus haut, vous pouvez spécifier qu'un conteneur doit être public, auquel cas toutes les opérations de lecture sur le conteneur et tous les objets BLOB qu'il contient sont accessibles de manière anonyme. Une demande anonyme n'a pas besoin d'être authentifiée, un utilisateur peut donc exécuter l'opération sans fournir les informations d'identification du compte. Voir Limiter l'accès aux conteneurs et aux objets BLOB pour plus d'informations sur la gestion de l'accès aux conteneurs et aux objets BLOB.

La bibliothèque managée .NET Windows Azure fournit des classes clés pour authentifier l'accès à votre compte de stockage :

  • La classe CloudStorageAccount représente votre compte de stockage Windows Azure.

  • La classe StorageCredentials stocke deux types différents d’informations d’identification qui peuvent être utilisées pour authentifier une demande : une clé d’accès et un nom de compte de stockage, qui peuvent être utilisés pour authentifier des demandes via les schémas d’authentification Shared Key et Shared Key Lite, ou une signature d’accès partagé.

  • Les classes CloudBlobClient, CloudQueueClient et CloudTableClient fournissent un point d'entrée à la hiérarchie de ressources pour les services d'objet BLOB, de File d'attente et de Table, respectivement. En d'autres termes, pour utiliser des conteneurs et des objets BLOB, vous créez un objet CloudBlobClient, pour utiliser des files d'attente et des messages, vous créez un objet CloudQueueClient et pour utiliser des tables et des entités, vous créez un objet CloudTableClient. L'objet client peut être créé directement, en fournissant le point de terminaison du service et un ensemble d'informations d'identification, ou il peut être créé à partir d'un objet CloudStorageAccount en appelant l'une des méthodes CreateCloudBlobClient, CreateCloudQueueClient ou CreateCloudTableClient. Ces méthodes vous permettent de renvoyer un objet client pour un ou plusieurs services à partir d'un objet CloudStorageAccount défini avec un ensemble unique d'informations d'identification.

    Notez que pour accéder à un conteneur ou à un objet BLOB de façon anonyme, vous n'avez pas besoin de créer un objet CloudStorageAccount ou un objet client. L'authentification n'est pas obligatoire pour l'accès anonyme, vous pouvez donc accéder à la ressource directement. Seules certaines opérations de lecture (avec HTTP GET) sont prises en charge via l'accès anonyme.

Utilisez la propriété CloudStorageAccount.DevelopmentStorageAccount pour renvoyer un objet CloudStorageAccount qui référence le compte connu de l'émulateur de stockage.

Cette propriété est utile quand vous écrivez du code qui n'utilise que l'émulateur de stockage, mais si vous devez faire pointer votre code vers un compte de stockage Windows Azure une fois le test terminé sur l'émulateur de stockage, vous avez la possibilité d'utiliser une chaîne de connexion. Vous pouvez rapidement modifier la chaîne de connexion pour basculer entre les comptes de stockage sans modifier votre code. Voir Configuration des chaînes de connexion Windows Azure pour plus d'informations.

La façon la plus simple d'accéder à un compte de stockage Windows Azure à partir de votre code consiste à créer un nouvel objet CloudStorageAccount en fournissant le nom et la clé d'accès de votre compte de stockage sous forme d'un objet StorageCredentials et en indiquant si vous souhaitez accéder au compte via HTTP ou HTTPS. Les demandes effectuées via CloudStorageAccount ou l'un de ses objets dérivés utilisent ces informations d'identification pour l'authentification.

Cet objet CloudStorageAccount utilise les points de terminaison par défaut. Les points de terminaison du service par défaut sont myaccount.blob.core.windows.net, myaccount.queue.core.windows.net et myaccount.table.core.windows.net, où myaccount est le nom de votre compte de stockage.

L'exemple de code suivant indique comment créer un objet CloudStorageAccount avec une référence au nom et à la clé d'accès de votre compte. Il crée ensuite un objet CloudBlobClient, suivi d'un nouveau conteneur :


// Account name and key.  Modify for your account.
string accountName = "myaccount";
string accountKey = "SzlFqgzqhfdk594cFoveYqCyvl8v9EESAnOLcTCeBIo31p46rJJRZx/5vU/oY3ZsK/VdFNaVpm6G8YSD2K48Nw==";

//Get a reference to the storage account, with authentication credentials
StorageCredentials credentials = new StorageCredentials(accountName, accountKey);
CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);

//Create a new client object.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve a reference to a container. 
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

// Create the container if it does not already exist.
container.CreateIfNotExists();

// Output container URI to debug window.
System.Diagnostics.Debug.WriteLine(container.Uri);

Vous pouvez également accéder à un compte de stockage en spécifiant explicitement les points de terminaison du service. Cette approche est utile dans deux scénarios :

  • quand vous accédez à un compte de stockage via une signature d'accès partagé ;

  • quand vous avez configuré un domaine personnalisé pour votre compte de stockage et que vous souhaitez utiliser ces points de terminaison personnalisés pour accéder au compte. Notez que les points de terminaison par défaut restent disponibles en plus de vos points de terminaison personnalisés.

Une signature d'accès partagé est un moyen d'accorder aux autres clients un accès contrôlé aux ressources de votre compte de stockage. La signature d'accès partagé intègre des informations sur la ressource sollicitée, des autorisations à accorder, l'intervalle pendant lequel la ressource est disponible et la stratégie d'accès sur le conteneur, le cas échéant. Dans le cadre de l'authentification, ces informations sont encapsulées dans une chaîne de signature codée en UTF-8 et une signature est ensuite créée à l'aide de l'algorithme HMAC-SHA256. La signature est incluse dans un jeton que les clients utilisent pour accéder à votre ressource. Par exemple, un client peut utiliser une signature d'accès partagé pour créer ou supprimer un objet BLOB dans votre compte de stockage, opérations auxquelles ils n'auraient pas accès si le conteneur était seulement public. Pour plus d’informations sur les signatures d’accès partagé, consultez la rubrique Délégation de l'accès avec une signature d'accès partagé (API REST).

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft. Tous droits réservés.