Ottenere le chiavi dell'account di archiviazione
L'operazione Get Storage Keys
restituisce le chiavi di accesso primaria e secondaria per l'account di archiviazione specificato.
Richiesta
La richiesta di Get Storage Keys
può essere specificata come indicato di seguito. Sostituire <subscription-id>
con l'ID sottoscrizione e <service-name>
con il nome dell'account di archiviazione.
Metodo | URI della richiesta |
---|---|
GET | https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>/keys |
È necessario verificare che la richiesta eseguita al servizio di gestione sia sicura. Per ulteriori dettagli, vedere l'autenticazione di richieste di gestione del servizio.
Parametri URI
Nessuna.
Intestazioni della richiesta
La tabella seguente descrive le intestazioni della richiesta.
Intestazione della richiesta | Descrizione |
---|---|
x-ms-version |
Obbligatorio. Specifica la versione dell'operazione da usare per questa richiesta. Questa intestazione deve essere impostata su 2009-10-01 o versione successiva. Per ulteriori informazioni sulle intestazioni di controllo delle versioni, vedere il controllo delle versioni di Service Management. |
Corpo della richiesta
Nessuna.
Risposta
Nella risposta sono inclusi un codice di stato HTTP, un set di intestazioni per la risposta e il corpo di una risposta.
Codice di stato
Un'operazione completata correttamente restituisce 200 (OK). Per informazioni sui codici di stato, vedere stato di gestione del servizio e i codici di errore.
Intestazioni della risposta
Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione della risposta | Descrizione |
---|---|
x-ms-request-id |
Valore che identifica in modo univoco una richiesta eseguita nel servizio di gestione. |
Corpo della risposta
Il formato del corpo della risposta è il seguente:
<?xml version="1.0" encoding="utf-8"?> <StorageService xmlns="https://schemas.microsoft.com/windowsazure"> <Url>storage-service-url</Url> <StorageServiceKeys> <Primary>primary-key</Primary> <Secondary>secondary-key</Secondary> </StorageServiceKeys> </StorageService>
Nella tabella indicata di seguito vengono descritti gli elementi del corpo della risposta.
Nome elemento | Descrizione |
---|---|
URL | URI della richiesta API di gestione dei servizi usato per eseguire le richieste Recupero delle proprietà dell'account di archiviazione nell'account di archiviazione. |
Principale | Chiave di accesso primaria dell'account di archiviazione. |
Secondario | Chiave di accesso secondaria dell'account di archiviazione. |
Osservazioni
Usare le chiavi di archiviazione restituite dall'operazione Get Storage Account Keys
per accedere agli endpoint del servizio BLOB, di accodamento e tabelle per l'archiviazione.
Esempio
Il programma di esempio seguente accetta l'ID sottoscrizione, un'identificazione personale del certificato di gestione associato, la stringa di versione dell'operazione e il nome dell'account di archiviazione, quindi visualizza le chiavi dell'account di archiviazione restituite nella console. Inizializzare le variabili msVersion
, subscriptionId
, thumbprint
e serviceName
con valori personalizzati per eseguire il codice di esempio.
using System; using System.Collections.Generic; using System.Net; using System.Security.Cryptography.X509Certificates; using System.Xml; using System.Xml.Linq; class Program { static void Main(string[] args) { string msVersion = "2011-10-01"; string subscriptionId = "subscription-id-guid"; string thumbprint = "certificate-thumbprint"; string serviceName = "storage-service-name"; try { // Obtain the certificate with the specified thumbprint X509Certificate2 certificate = GetCertificate(thumbprint); GetStorageAccountKeysExample( subscriptionId, certificate, msVersion, serviceName); } catch (Exception ex) { Console.WriteLine("Exception caught in Main:"); Console.WriteLine(ex.Message); } } public static X509Certificate2 GetCertificate(string thumbprint) { List<StoreLocation> locations = new List<StoreLocation> { StoreLocation.CurrentUser, StoreLocation.LocalMachine }; foreach (var location in locations) { X509Store store = new X509Store("My", location); try { store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection certificates = store.Certificates.Find( X509FindType.FindByThumbprint, thumbprint, false); if (certificates.Count == 1) { return certificates[0]; } } finally { store.Close(); } } throw new ArgumentException(string.Format( "A certificate with thumbprint '{0}' could not be located.", thumbprint)); } public static void GetStorageAccountKeysExample( string subscriptionId, X509Certificate2 certificate, string version, string serviceName) { string uriFormat = "https://management.core.windows.net/{0}/services/storageservices/{1}/keys"; Uri uri = new Uri(String.Format(uriFormat, subscriptionId, serviceName)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Method = "GET"; request.Headers.Add("x-ms-version", version); request.ClientCertificates.Add(certificate); request.ContentType = "application/xml"; XDocument responseBody = null; HttpStatusCode statusCode; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { // GetResponse throws a WebException for 400 and 500 status codes response = (HttpWebResponse)ex.Response; } statusCode = response.StatusCode; if (response.ContentLength > 0) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { responseBody = XDocument.Load(reader); } } response.Close(); if (statusCode.Equals(HttpStatusCode.OK)) { XNamespace wa = "https://schemas.microsoft.com/windowsazure"; XElement storageService = responseBody.Element(wa + "StorageService"); Console.WriteLine( "Storage Account Keys for {0}:{1}{2}", serviceName, Environment.NewLine, storageService.ToString(SaveOptions.OmitDuplicateNamespaces)); } else { Console.WriteLine("Call to Get Storage Account Keys returned an error:"); Console.WriteLine("Status Code: {0} ({1}):{2}{3}", (int)statusCode, statusCode, Environment.NewLine, responseBody.ToString(SaveOptions.OmitDuplicateNamespaces)); } return; } }
Quando viene eseguito, l'output del programma risulterà simile all'esempio seguente:
Storage Account Keys for myexamplestorage1: <StorageService xmlns="https://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Url>https://management.core.windows.net/01234567-89ab-cdef-0123-456789abcdef/services/storageservices/myexamplestorage1</Url> <StorageServiceKeys> <Primary>XrmGWqu9qpgKX5G3lf+V5Bc0nFIGjGWiWhHTdMxkA5Mb4WjJ0rDV+3USWW/6fAWCrszrkr2+JUb1c5mxQdq4nw==</Primary> <Secondary>VuXywhZaNbkh//SN70yL1w6na2H1FUOvjukSOAReQ6QM4kHNY7LmQUhgENw6Tp/SBz4y65R3Y5L5c5+zqXNvVA==</Secondary> </StorageServiceKeys> </StorageService>