(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Authentifizieren des Zugriffs auf Ihr Windows Azure-Speicherkonto

Letzte Aktualisierung: Februar 2014

Jede Anforderung, die Sie an die Windows Azure-Speicherdienste senden, muss authentifiziert werden, es sei denn, es handelt sich um eine anonyme Anforderung für einen öffentlichen Container oder dessen BLOBs. Durch die verwalteten Windows Azure-Bibliotheken wird dieser Authentifizierungsprozess vereinfacht. Es gibt zwei Möglichkeiten, eine Anforderung für die Speicherdienste zu authentifizieren:

  • Mithilfe des Authentifizierungsschemas Shared Key (gemeinsam verwendeter Schlüssel) oder Shared Key Lite für Ressourcen in den BLOB-, Warteschlangen- oder Tabellendiensten. Dieses Authentifizierungsschema verwendet einen HMAC, der mit dem SHA-256-Algorithmus berechnet und mit Base64 verschlüsselt wird. Der HMAC wird aus einem Satz von Feldern erstellt, die mit der Anforderung in Beziehung sind. Details zum Protokoll finden Sie unter Authentifizierung für die Windows Azure-Speicherdienste.

  • Durch Erstellen einer SAS (Shared Access Signature). Eine SAS verwendet ein sicheres Format, um alle für die Authentifizierung erforderlichen Anmeldeinformationen, zusammen mit der Adresse der Ressource, auf die zugegriffen wird, im URI wiederzugeben. Da die SAS alle Daten enthält, die für die Authentifizierung im URI erforderlich sind, kann sie verwendet werden, um einen kontrollierten Zugriff auf eine Ressource im BLOB-, Warteschlangen- oder Tabellendienst zu gewähren, und sie kann getrennt vom Code verteilt werden. Details zum Protokoll finden Sie unter Delegieren des Zugriffs mit einer SAS (Shared Access Signature) (REST-API).

Wie bereits erwähnt, können Sie einen Container als öffentlich kennzeichnen, sodass Lesevorgänge auf dem Container und den enthaltenen BLOBs auch über einen anonymen Zugriff möglich sind. Eine anonyme Anforderung muss nicht authentifiziert werden. Ein Benutzer kann den Vorgang also ausführen, ohne Kontoanmeldeinformationen bereitzustellen. Weitere Informationen zum Verwalten des Container- und BLOB-Zugriffs finden Sie unter Beschränken des Zugriffs auf Container und BLOBs.

Die verwaltete .NET-Bibliothek von Windows Azure stellt mehrere Key-Klassen für die Authentifizierung des Zugriffs auf Ihr Speicherkonto bereit:

  • Die CloudStorageAccount-Klasse stellt Ihr Windows Azure-Speicherkonto dar.

  • Die Klasse StorageCredentials speichert zwei verschiedene Typen von Anmeldeinformationen, zum zum Authentifizieren einer Anforderung verwendet werden können: einen Speicherkontonamen und Zugriffsschlüssel, mit dem Anforderungen über das Authentifizierungsschema Shared Key oder Shared Key Lite authentifiziert werden können, oder eine SAS.

  • Die Klassen CloudBlobClient, CloudQueueClient und CloudTableClient stellen jeweils einen Einstiegspunkt in die Ressourcenhierarchie für den Blob-Dienst, den Warteschlangendienst und den Tabellendienst bereit. Das heißt, um mit Containern und BLOBs zu arbeiten, erstellen Sie ein CloudBlobClient-Objekt. Wenn Sie mit Warteschlangen und Nachrichten arbeiten, erstellen Sie ein CloudQueueClient, und wenn Sie mit Tabellen und Entitäten arbeiten ein CloudTableClient. Das Clientobjekt kann direkt erstellt werden, indem der Dienstendpunkt und ein Satz von Anmeldeinformationen angegeben werden, oder es kann von einem CloudStorageAccount-Objekt erstellt werden, indem eine der Methoden CreateCloudBlobClient, CreateCloudQueueClient oder CreateCloudTableClient aufgerufen wird. Diese Methoden gestatten die Rückgabe eines Clientobjekts für einen oder mehrere Dienste in einem CloudStorageAccount-Objekt, das mit nur einen Satz von Anmeldeinformationen definiert wurde.

    Beachten Sie, dass Sie für den anonymen Zugriff auf einen Container oder ein BLOB kein CloudStorageAccount oder Clientobjekt erstellen müssen. Eine Authentifizierung ist für den anonymen Zugriff nicht erforderlich, und Sie können direkt auf die Ressource zugreifen. Anonyme Zugriffe werden nur für bestimmte Lesevorgänge (mit HTTP GET) unterstützt.

Sie können die CloudStorageAccount.DevelopmentStorageAccount-Eigenschaft verwenden, um ein CloudStorageAccount-Objekt zurückzugeben, das auf das bekannte Speicheremulatorkonto verweist.

Diese Eigenschaft ist nützlich, wenn Sie Code schreiben, der nur für den Speicheremulator verwendet wird. Wenn Ihr Code nach dem Abschluss der Tests auf ein Windows Azure-Speicherkonto verweisen soll, sollten Sie stattdessen eine Verbindungszeichenfolge verwenden. Sie können die Verbindungszeichenfolge einfach ändern und so zwischen Speicherkonten wechseln, ohne dass Codeänderungen erforderlich sind. Weitere Informationen finden Sie unter Konfigurieren von Windows Azure-Verbindungszeichenfolgen.

Die einfachste Möglichkeit, im Code auf ein Windows Azure-Speicherkonto zuzugreifen, ist das Erstellen eines neuen CloudStorageAccount-Objekts. Hierbei geben Sie den Speicherkontonamen und Zugriffsschlüssel in Form eines StorageCredentials-Objekts an, und ob HTTP oder HTTPS für den Zugriff verwendet werden soll. Anforderungen, die über dieses CloudStorageAccount oder über abgeleitete Objekte erfolgen, verwenden diese Anmeldeinformationen für die Authentifizierung.

Das CloudStorageAccount-Objekt verwendet die Standardendpunkte für die Speicherdienste. Die Standardendpunkte für die Dienste lauten myaccount.blob.core.windows.net, myaccount.queue.core.windows.net und myaccount.table.core.windows.net, wobei myaccount der Name des Speicherkontos ist.

Im folgenden Codebeispiel wird gezeigt, wie ein neues CloudStorageAccount-Objekt mit einem Verweis auf den Kontonamen und den Zugriffsschlüssel erstellt wird. Anschließend werden ein neues CloudBlobClient-Objekt und ein neuer Container erstellt:


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

Sie können auf ein Speicherkonto auch zugreifen, indem Sie explizite Dienstendpunkte angeben. Dieser Ansatz ist in zwei Szenarien hilfreich:

  • Wenn Sie auf ein Speicherkonto über eine SAS zugreifen.

  • Wenn Sie eine benutzerdefinierte Domäne für Ihr Speicherkonto konfiguriert haben und Sie die benutzerdefinierten Endpunkte verwenden möchten, um auf das Konto zuzugreifen. Beachten Sie, dass auch die Standardendpunkte zusätzlich zu den benutzerdefinierten Endpunkten verfügbar sind.

Über eine SAS können Sie anderen Clients kontrolliert Zugriff auf Ressourcen in Ihrem Speicherkonto gewähren. Die SAS enthält Informationen über die Ressource, auf die zugegriffen werden soll, über die gewährten Berechtigungen, über den Zeitraum, für den die Ressource verfügbar sein soll, und über die Zugriffsrichtlinie auf dem Container, sofern vorhanden. Für die Authentifizierung werden diese Informationen in eine zu signierende Zeichenfolge mit UTF-8-Codierung gekapselt. Anschließend wird eine Signatur mit dem HMAC-SHA256-Algorithmus erstellt. Die Signatur stellt einen Teil eines Tokens dar, den Clients verwenden können, um auf die Ressource zuzugreifen. Beispielsweise kann ein Client eine SAS verwenden, um ein BLOB in Ihrem Speicherkonto zu erstellen oder zu löschen. Solche Vorgänge wären bei einem einfachen Zugriff auf einen als öffentlich markierten Container nicht möglich. Weitere Informationen zu SAS finden Sie unter Delegieren des Zugriffs mit einer SAS (Shared Access Signature) (REST-API).

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.