Esempi di contratti di servizioService SAS examples

In questo argomento viene illustrato un esempio in cui si utilizzano le firme di accesso condiviso con l'API REST. Le firme di accesso condiviso consentono di fornire diritti di accesso a contenitori e BLOB, tabelle, code o file. Con una firma di accesso condiviso, è possibile concedere agli utenti l'accesso limitato a un intervallo specifico di contenitore, Blob, coda, tabella o entità di tabella per un determinato periodo di tempo. Per informazioni dettagliate sulla costruzione, l'analisi e l'utilizzo delle firme di accesso condiviso, vedere Delega di Access con una firmadi accesso condiviso . Per informazioni sull'utilizzo della libreria client di archiviazione .NET per creare firme di accesso condiviso, vedere Creare e utilizzare una firmadi accesso condiviso .

Esempi di Blob

In questa sezione sono disponibili esempi che illustrano le firme di accesso condiviso per le operazioni REST sui Blob.

Esempio: ottenere un Blob mediante la firma di accesso condiviso di un contenitore

Versioni precedenti al 2013-08-15

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per l'accesso in lettura a un contenitore.

Tra i campi per la firma compilati che comprenderanno l'URL sono inclusi:

signedstart=2009-02-09  
signedexpiry=2009-02-10  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2012-02-12  

La firma viene creata come indicato di seguito:

StringToSign = r + \n   
               2009-02-09 + \n  
               2009-02-10 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2012-02-12  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  

L'URL della richiesta specifica pictures le autorizzazioni di lettura per il contenitore per l'intervallo designato. La risorsa rappresentata dall'URL della richiesta è un BLOB, ma la firma di accesso condiviso viene specificata nel contenitore. È anche possibile specificarla nel Blob stesso.

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2012-02-12&st=2009-02-09&se=2009-02-10&sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d   
HTTP/1.1  
Host: myaccount.blob.core.windows.net  
x-ms-date: <date>  
  

Versione 2013-08-15 e successive

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per l'accesso in lettura a un contenitore utilizzando la versione 2013-08-15 dei servizi di archiviazione.

Con i nuovi parametri di query introdotti dalla versione 2013-08-15, il client che invia la richiesta è in grado di ignorare le intestazioni di risposta solo per questa firma di accesso condiviso.

Le intestazioni della risposta e i corrispondenti parametri di query sono i seguenti:

Nome dell'intestazione della risposta Parametro della query SAS corrispondente
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Tra i campi che comprendono la stringa da firmare per la firma sono inclusi:

signedstart=2013-08-16  
signedexpiry=2013-08-17  
signedresource=c  
signedpermissions=r  
signedidentifier=YWJjZGVmZw==  
signedversion=2013-08-15  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

La stringa da firmare viene creata come indicato di seguito:

StringToSign = r + \n   
               2013-08-16 + \n  
               2013-08-17 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

La firma di accesso condiviso specifica le autorizzazioni di accesso in lettura sul contenitore di immagini per l'intervallo definito. La risorsa rappresentata dall'URL della richiesta è un BLOB, ma la firma di accesso condiviso viene specificata nel contenitore. È anche possibile specificarla nel Blob stesso.

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2013-08-15&st=2013-08-16&se=2013-08-17&sr=c&sp=r&rscd=file;%20attachment&rsct=binary &sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d HTTP/1.1  
  

Per un client che effettua una richiesta con questa firma, verrà eseguita l'operazione Get Blob se vengono soddisfatti i criteri seguenti:For a client making a request with this signature, the Get Blob operation will be executed if the following criteria are met:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il Blob specificato dalla richiesta (/myaccount/pictures/profile.jpg) risiede nel contenitore specificato come risorsa firmata (/myaccount/pictures).

Specificando rsct=binary e rscd=file; attachment nella firma di accesso condiviso si esegue l'override delle intestazioni content-type e content-disposition nella risposta, rispettivamente.

Un risposta corretta per una richiesta effettuata utilizzando questa firma di accesso condiviso sarà simile a quanto indicato di seguito:

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
x-ms-blob-type: BlockBlob  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2013-08-15  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Esempio: caricare un BLOB usando la firma di accesso condiviso di un contenitoreExample: Upload a Blob using a Container's Shared Access Signature

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per la scrittura di un Blob. In questo esempio, viene creata una firma che garantisce le autorizzazioni di accesso in scrittura per tutti i Blob nel contenitore. Quindi si utilizza la firma di accesso condiviso per scrivere su un Blob nel contenitore.

I campi firmati che costituiranno l'URL includono:

  
signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

La firma viene creata come indicato di seguito:

  
StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
  

L'URL della richiesta specifica pictures le autorizzazioni di scrittura per il contenitore per l'intervallo designato. La risorsa rappresentata dall'URL della richiesta è un BLOB, ma la firma di accesso condiviso viene specificata nel contenitore. È anche possibile specificarla nel Blob stesso.

PUT https://myaccount.blob.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
  
Content-Length: 12  
  
Hello World.  
  

Con questa firma, Put Blob verrà chiamato se vengono soddisfatti i criteri seguenti:With this signature, Put Blob will be called if the following criteria are met:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il Blob specificato dalla richiesta (/myaccount/pictures/photo.jpg) risiede nel contenitore specificato come risorsa firmata (/myaccount/pictures).

Esempio: eliminare un Blob mediante la firma di accesso condiviso di un Blob

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso che conceda le autorizzazioni di eliminazione per un Blob e che lo elimini.

Attenzione

Una firma di accesso condiviso per un'operazione DELETE deve essere distribuita in modo ponderato, poiché se si consente a un client di eliminare dati potrebbero verificarsi conseguenze impreviste.

Tra i campi per la firma compilati che comprenderanno l'URL sono inclusi:

  
signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

La firma viene creata come indicato di seguito:

  
StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               blob/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
  

Tramite l'URL della richiesta vengono specificate le autorizzazioni di eliminazione sul contenitore di immagini per l'intervallo definito. La risorsa rappresentata dall'URL della richiesta è un BLOB e la firma di accesso condiviso viene specificata in tale BLOB. È anche possibile specificarla nel contenitore del Blob per concedere l'autorizzazione di eliminare qualsiasi Blob nel contenitore.

  
DELETE https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  
  

Con questa firma, Delete Blob verrà chiamato se vengono soddisfatti i criteri seguenti:With this signature, Delete Blob will be called if the following criteria are met:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il Blob specificato dalla richiesta (/myaccount/pictures/profile.jpg) corrisponde al Blob specificato come risorsa firmata.

Esempi di file

Questa sezione contiene esempi che illustrano le firme di accesso condiviso per le operazioni REST sui file.

Esempio: ottenere un file usando la firma di accesso condiviso di una condivisioneExample: Get a File using a Share's Shared Access Signature

Nell'esempio seguente viene illustrato come costruire una firma di accesso condiviso per l'accesso in lettura in una condivisione.

Pochi parametri di query possono consentire al client che emettendo la richiesta di eseguire l'override delle intestazioni di risposta per questa firma di accesso condiviso.

Le intestazioni della risposta e i corrispondenti parametri di query sono i seguenti:

Nome dell'intestazione della risposta Parametro della query SAS corrispondente
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct (rsct)

Tra i campi che comprendono la stringa da firmare per la firma sono inclusi:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015—02-21  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

La stringa da firmare viene creata come indicato di seguito:

StringToSign = r + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015—02-21 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

La firma di accesso condiviso pictures specifica le autorizzazioni di lettura per la condivisione per l'intervallo designato. La risorsa rappresentata dall'URL della richiesta è un file, ma la firma di accesso condiviso viene specificata nella condivisione. È anche possibile specificarlo sul file stesso.

GET https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08:49Z&se=2015-07-02T08:49Z&sr=c&sp=r&rscd=file;%20attachment&rsct=binary&sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d  
  

Per un client che effettua una richiesta con questa firma, l'operazione Get File verrà eseguita se vengono soddisfatti i criteri seguenti:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il file specificato dalla richiesta (/myaccount/pictures/profile.jpg) risiede nella condivisione specificata come risorsa firmata (/myaccount/pictures).

Specificando rsct=binary e rscd=file; attachment nella firma di accesso content-type content-disposition condiviso si esegue l'override delle intestazioni e nella risposta, rispettivamente.

Un risposta corretta per una richiesta effettuata utilizzando questa firma di accesso condiviso sarà simile a quanto indicato di seguito:

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2015-02-21  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Esempio: caricare un file utilizzando una firma di accesso condiviso in una condivisioneExample: Upload a File using a Shared Access Signature on a Share

Nell'esempio seguente viene illustrato come costruire una firma di accesso condiviso per la scrittura di un file. In questo esempio viene creata una firma che concede le autorizzazioni di scrittura per tutti i file nella condivisione. Quindi usiamo la firma di accesso condiviso per scrivere in un file nella condivisione.

Tra i campi per la firma compilati che comprenderanno l'URL sono inclusi:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signature=Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

La firma viene creata come indicato di seguito:

StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  

L'URL della richiesta specifica pictures le autorizzazioni di scrittura per il contenitore per l'intervallo designato. La risorsa rappresentata dall'URL della richiesta è un BLOB, ma la firma di accesso condiviso viene specificata nel contenitore. È anche possibile specificarla nel Blob stesso.

PUT https://myaccount.file.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 12  
  
Hello World.  

Con questa firma, Crea file verrà chiamato se vengono soddisfatti i seguenti criteri:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il file specificato dalla richiesta (/myaccount/pictures/photo.jpg) si trova nella condivisione specificata come risorsa firmata (/myaccount/pictures).

Esempio: eliminare un file utilizzando la firma di accesso condiviso di un file

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso che conceda le autorizzazioni di eliminazione per un file, quindi viene utilizzata la firma di accesso condiviso per eliminare il file.

Attenzione

Una firma di accesso condiviso per un'operazione DELETE deve essere distribuita in modo giudizioso, poiché il permesso a un client di eliminare i dati può avere conseguenze impreviste.

Tra i campi per la firma compilati che comprenderanno l'URL sono inclusi:

signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

La firma viene creata come indicato di seguito:

StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               file/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  

L'URL della richiesta specifica le autorizzazioni di eliminazione per la condivisione immagini per l'intervallo designato. La risorsa rappresentata dall'URL della richiesta è un file e la firma di accesso condiviso viene specificata in tale file. È anche possibile specificarlo nella condivisione del file per concedere l'autorizzazione per eliminare qualsiasi file nella condivisione.

DELETE https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  

Con questa firma, Elimina file verrà chiamato se vengono soddisfatti i seguenti criteri:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • Il file specificato dalla richiesta (/myaccount/pictures/profile.jpg) corrisponde al file specificato come risorsa firmata.

Esempi di accodamento

In questa sezione sono disponibili esempi che illustrano le firme di accesso condiviso per le operazioni REST sulle code. In questi esempi, l'operazione del servizio di accodamento viene eseguita solo dopo che vengono soddisfatti i seguenti criteri:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • La coda specificata dalla richiesta è la stessa coda autorizzata dalla firma di accesso condiviso.

Esempio: recuperare messaggi utilizzando una firma di accesso condiviso

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per il recupero dei messaggi da una coda. Questa firma garantisce le autorizzazioni di elaborazione del messaggio per la coda. Infine, in questo esempio viene utilizzata la firma di accesso condiviso per recuperare un messaggio dalla coda.

Esaminare i seguenti campi della firma firma, la costruzione della stringa da firmare e la costruzione dell'URL che chiama l'operazione Get Messages dopo l'autorizzazione della richiesta:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=p  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
  
StringToSign = p + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=p&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

Esempio: aggiungere un messaggio utilizzando una firma di accesso condiviso

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per aggiungere un messaggio a una coda. Questa firma garantisce l'aggiunta di permessi per la coda. Infine, in questo esempio viene utilizzata la firma per aggiungere un messaggio.

Esaminare i seguenti campi della firma firma, la costruzione della stringa StringToSign e la costruzione dell'URL che chiama l'operazione Put Message dopo l'autorizzazione della richiesta:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=a  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = a + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=a&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
Content-Length: 100  
  
<QueueMessage>  
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>  
</QueueMessage>  
  

Esempio: visualizzazione dei messaggi e ricezione di un messaggio utilizzando una firma di accesso condiviso

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per visualizzare il messaggio successivo in una coda e per recuperare il conteggio messaggi della coda. Questa firma garantisce i permessi di accesso in lettura per la coda. Infine, in questo esempio viene utilizzata la firma di accesso condiviso per visualizzare un messaggio e quindi leggere i metadati della coda, incluso il conteggio messaggi.

Esaminare i seguenti campi della firma firma, la costruzione della stringa da firmare e la costruzione dell'URL che chiama le operazioni Peek Messages e Get Queue Metadata:

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = r + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myacccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  
GET https://myaccount.queue.core.windows.net/myqueue?comp=metadata&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

Esempi di tabelle

In questa sezione sono disponibili esempi che illustrano le firme di accesso condiviso per le operazioni REST sulle tabelle. In questi esempi, l'operazione del servizio tabelle viene eseguita solo se sono stati soddisfatti i seguenti criteri:

  • La richiesta è stata autorizzata correttamente.

  • La richiesta viene eseguita nell'intervallo di tempo specificato dalla firma di accesso condiviso.

  • La richiesta non viola alcun termine di criteri di accesso archiviati associati.

  • La coda specificata dalla richiesta è la stessa coda autorizzata dalla firma di accesso condiviso.

Esempio: eseguire una query su una tabella utilizzando una firma di accesso condiviso

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per eseguire query sulle entità in una tabella. La firma garantisce i permessi di query per un intervallo specifico nella tabella. Infine, in questo esempio viene utilizzata la firma di accesso condiviso per eseguire query sulle entità incluse nell'intervallo.

Esaminare i seguenti campi di firma compilati, la creazione della stringa StringToSign e la creazione dell'URL che richiama l'operazione Query Entities. I risultati di questa operazione Query Entities includeranno solo le entità incluse nell'intervallo definito da startpk, startrk, endpk e endrk.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
startpk="Coho Winery"  
startrk="Auburn"  
endpk="Coho Winery"  
endrk="Seattle"  
  
String-To-Sign = r + \n
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw==  + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 Auburn + \n  
                 Coho Winery + \n  
                 Seattle  
  
GET https://myaccount.table.core.windows.net/MyTable?$filter=PartitionKey%20eq%20'Coho%20Winery'&sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&srk=Auburn&epk=Coho%20Winery&erk=Seattle HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
  

Esempio: aggiornare una tabella utilizzando una firma di accesso condiviso

Nell'esempio seguente viene illustrato come creare una firma di accesso condiviso per aggiornare le entità in una tabella. La firma concede i permessi di aggiornamento per un intervallo specifico di entità. Infine, in questo esempio viene utilizzata la firma di accesso condiviso per aggiornare un'entità inclusa nell'intervallo.

Esaminare i seguenti campi di firma compilati, la creazione della stringa StringToSign e la creazione dell'URL che richiama l'operazione Update Entity. L'operazione Update Entity consente di aggiornare solo le entità incluse nell'intervallo di partizione definito da startpk e endpk.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=u  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
startpk="Coho Winery"  
endpk="Coho Winery"  
  
String-To-Sign = u + \n   
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw== + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 + \n  
                 Coho Winery + \n  
  
MERGE https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho%20Winery',RowKey='Seattle')?sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=u&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&epk=Coho%20Winery HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
If-Match: *  
Content-Type: application/atom+xml  
Content-Length: 696  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id>https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho Winery',RowKey='Seattle')</id>  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>P</d:PartitionKey>  
      <d:RowKey>R</d:RowKey>  
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>  
    </m:properties>  
  </content>  
</entry>  
  

Vedere anche

Delegare l'accesso con una firma di accesso condivisoDelegate access with a shared access signature
Creare un SAS di servizio