Voorbeelden van service-SAS

In dit onderwerp ziet u voorbeelden van het gebruik van handtekeningen voor gedeelde toegang met de REST API. Met handtekeningen voor gedeelde toegang kunt u toegangsrechten opgeven voor containers en blobs, tabellen, wachtrijen of bestanden. Door een handtekening voor gedeelde toegang op te geven, kunt u gebruikers gedurende een opgegeven periode beperkte toegang verlenen tot een specifieke container, blob, wachtrij, tabel of tabelentiteitsbereik. Zie Toegang delegeren met een Shared Access Signature voor meer informatie over het maken, parseren en gebruiken van handtekeningen voor gedeelde toegang. Zie Een shared access signature maken en gebruiken voor meer informatie over het gebruik van de .NET Storage-clientbibliotheek om handtekeningen voor gedeelde toegang te maken.

Blob-voorbeelden

Deze sectie bevat voorbeelden van handtekeningen voor gedeelde toegang voor REST-bewerkingen op blobs.

Voorbeeld: een blob ophalen met behulp van de Shared Access Signature van een container

Versies vóór 15-08-2013

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor leestoegang in een container.

De ondertekende handtekeningvelden waaruit de URL bestaat, zijn onder andere:

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

De handtekening is als volgt opgebouwd:

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=  

De aanvraag-URL geeft leesmachtigingen op voor de pictures container voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een blob, maar de Shared Access Signature is opgegeven in de container. Het is ook mogelijk om deze op te geven op de blob zelf.

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>  
  

Versie 2013-08-15 en hoger

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor leestoegang in een container met behulp van versie 2013-08-15 van de opslagservices.

Versie 2013-08-15 introduceert nieuwe queryparameters waarmee de client die de aanvraag uitgeeft alleen antwoordheaders voor deze shared access signature kan overschrijven.

De antwoordheaders en de bijbehorende queryparameters zijn als volgt:

Naam van antwoordheader Bijbehorende SAS-queryparameter
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

De velden waaruit de tekenreeks voor de handtekening bestaat, zijn onder andere:

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  

De tekenreeks-naar-teken is als volgt opgebouwd:

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=  

De Shared Access Signature geeft leesmachtigingen op voor de container afbeeldingen voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een blob, maar de Shared Access Signature is opgegeven in de container. Het is ook mogelijk om deze op te geven op de blob zelf.

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  
  

Voor een client die een aanvraag met deze handtekening indient, wordt de bewerking Blob ophalen uitgevoerd als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de Shared Access Signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • De blob die is opgegeven door de aanvraag (/myaccount/pictures/profile.jpg) bevindt zich in de container die is opgegeven als de ondertekende resource (/myaccount/pictures).

Als u en rscd=file; attachment opgeeft in de handtekening voor gedeelde toegang, worden de headers van het inhoudstype en de inhoudsverwijdering rsct=binary in het antwoord overschreven.

Een geslaagd antwoord op een aanvraag die is gedaan met behulp van deze Shared Access Signature is vergelijkbaar met het volgende:

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  

Voorbeeld: Een blob uploaden met behulp van de Shared Access Signature van een container

In het volgende voorbeeld ziet u hoe u een Shared Access Signature maakt voor het schrijven van een blob. In dit voorbeeld maken we een handtekening die schrijfmachtigingen verleent voor alle blobs in de container. Vervolgens gebruiken we de shared access signature om naar een blob in de container te schrijven.

De ondertekende velden waaruit de URL bestaat, zijn onder andere:

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

De handtekening is als volgt opgebouwd:

  
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=  
  

De aanvraag-URL geeft schrijfmachtigingen op voor de pictures container voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een blob, maar de Shared Access Signature is opgegeven in de container. Het is ook mogelijk om deze op te geven op de blob zelf.

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.  
  

Met deze handtekening wordt Put Blob aangeroepen als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de Shared Access Signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • De blob die is opgegeven door de aanvraag (/myaccount/pictures/photo.jpg) bevindt zich in de container die is opgegeven als de ondertekende resource (/myaccount/pictures).

Voorbeeld: Blob verwijderen met behulp van de Shared Access Signature van een blob

In het volgende voorbeeld ziet u hoe u een shared access signature maakt die verwijderingsmachtigingen verleent voor een blob en een blob verwijdert.

Waarschuwing

Houd er rekening mee dat een shared access signature voor een DELETE-bewerking verstandig moet worden gedistribueerd, omdat het toestaan van een client om gegevens te verwijderen onbedoelde gevolgen kan hebben.

De ondertekende handtekeningvelden waaruit de URL bestaat, zijn onder andere:

  
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  
  

De handtekening is als volgt opgebouwd:

  
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=  
  

De aanvraag-URL geeft machtigingen voor verwijderen op voor de container afbeeldingen voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een blob en de Shared Access Signature wordt opgegeven voor die blob. Het is ook mogelijk om deze op te geven in de container van de blob om toestemming te verlenen voor het verwijderen van een blob in de container.

  
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  
  

Met deze handtekening wordt Blob verwijderen aangeroepen als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de Shared Access Signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • De blob die is opgegeven door de aanvraag (/myaccount/pictures/profile.jpg) komt overeen met de blob die is opgegeven als de ondertekende resource.

Bestandsvoorbeelden

Deze sectie bevat voorbeelden van handtekeningen voor gedeelde toegang voor REST-bewerkingen op bestanden.

Voorbeeld: Een bestand ophalen met behulp van de Shared Access Signature van een share

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor leestoegang op een share.

Enkele queryparameters kunnen de client die de aanvraag uitgeeft in staat stellen antwoordheaders voor deze shared access signature te overschrijven.

De antwoordheaders en de bijbehorende queryparameters zijn als volgt:

Naam van antwoordheader Bijbehorende SAS-queryparameter
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

De velden waaruit de tekenreeks voor de handtekening bestaat, zijn onder andere:

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  

De tekenreeks-naar-teken is als volgt opgebouwd:

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=  

De shared access signature geeft leesmachtigingen op voor de pictures share voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een bestand, maar de Shared Access Signature is opgegeven op de share. Het is ook mogelijk om deze op te geven in het bestand zelf.

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  
  

Voor een client die een aanvraag met deze handtekening indient, wordt de bewerking Bestand ophalen uitgevoerd als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de Shared Access Signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • Het bestand dat is opgegeven door de aanvraag (/myaccount/pictures/profile.jpg) bevindt zich in de share die is opgegeven als de ondertekende resource (/myaccount/pictures).

Als rsct=binary u en rscd=file; attachment opgeeft voor de handtekening voor gedeelde toegang, worden de content-type headers en content-disposition in het antwoord overschreven.

Een geslaagd antwoord op een aanvraag die is gedaan met behulp van deze Shared Access Signature is vergelijkbaar met het volgende:

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  

Voorbeeld: Een bestand uploaden met behulp van een Shared Access Signature op een share

In het volgende voorbeeld ziet u hoe u een Shared Access Signature maakt voor het schrijven van een bestand. In dit voorbeeld maken we een handtekening die schrijfmachtigingen verleent voor alle bestanden in de share. Vervolgens gebruiken we de shared access signature om naar een bestand in de share te schrijven.

De ondertekende handtekeningvelden waaruit de URL bestaat, zijn onder andere:

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

De handtekening is als volgt opgebouwd:

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=  

De aanvraag-URL geeft schrijfmachtigingen op voor de pictures container voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een blob, maar de Shared Access Signature is opgegeven in de container. Het is ook mogelijk om deze op te geven op de blob zelf.

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.  

Met deze handtekening wordt Bestand maken aangeroepen als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de shared access signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • Het bestand dat is opgegeven door de aanvraag (/myaccount/pictures/photo.jpg) bevindt zich in de share die is opgegeven als de ondertekende resource (/mijnaccount/afbeeldingen).

Voorbeeld: Bestand verwijderen met behulp van de Shared Access Signature van een bestand

In het volgende voorbeeld ziet u hoe u een Shared Access Signature maakt die verwijderingsmachtigingen voor een bestand verleent en vervolgens de Shared Access Signature gebruikt om het bestand te verwijderen.

Waarschuwing

Een Shared Access Signature voor een DELETE-bewerking moet zorgvuldig worden gedistribueerd, omdat het toestaan van een client om gegevens te verwijderen onbedoelde gevolgen kan hebben.

De ondertekende handtekeningvelden waaruit de URL bestaat, zijn onder andere:

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  

De handtekening is als volgt opgebouwd:

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=  

De aanvraag-URL specificeert machtigingen voor het verwijderen van de fotoshare voor het opgegeven interval. De resource die wordt vertegenwoordigd door de aanvraag-URL is een bestand en de shared access signature is opgegeven in dat bestand. Het is ook mogelijk om deze op te geven op de bestandsshare om toestemming te verlenen voor het verwijderen van een bestand in de share.

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  

Met deze handtekening wordt Bestand verwijderen aangeroepen als aan de volgende criteria wordt voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de shared access signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • Het bestand dat is opgegeven door de aanvraag (/myaccount/pictures/profile.jpg) komt overeen met het bestand dat is opgegeven als de ondertekende resource.

Wachtrijvoorbeelden

Deze sectie bevat voorbeelden van handtekeningen voor gedeelde toegang voor REST-bewerkingen in wachtrijen. In deze voorbeelden wordt de wachtrijservicebewerking alleen uitgevoerd nadat aan de volgende criteria is voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de shared access signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • De wachtrij die door de aanvraag wordt opgegeven, is dezelfde wachtrij die is geautoriseerd door de handtekening voor gedeelde toegang.

Voorbeeld: Berichten ophalen met behulp van een Shared Access Signature

In het volgende voorbeeld ziet u hoe u een Shared Access Signature maakt voor het ophalen van berichten uit een wachtrij. Deze handtekening verleent machtigingen voor berichtverwerking voor de wachtrij. Ten slotte wordt in dit voorbeeld de Shared Access Signature gebruikt om een bericht op te halen uit de wachtrij.

Bekijk de volgende ondertekende handtekeningvelden, de constructie van de tekenreeks om te ondertekenen en de constructie van de URL die de bewerking Berichten ophalen aanroept nadat de aanvraag is geautoriseerd:

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  
  

Voorbeeld: Een bericht toevoegen met behulp van een Shared Access Signature

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor het toevoegen van een bericht aan een wachtrij. Deze handtekening verleent machtigingen voor het toevoegen van de wachtrij. Ten slotte wordt in dit voorbeeld de handtekening gebruikt om een bericht toe te voegen.

Bekijk de volgende ondertekende handtekeningvelden, de constructie van de tekenreeks StringToSign en de constructie van de URL die de bewerking Bericht plaatsen aanroept nadat de aanvraag is geautoriseerd:

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>  
  

Voorbeeld: Een kijkje nemen in Berichten en Een bericht ophalen met behulp van een Shared Access Signature

In het volgende voorbeeld ziet u hoe u een Shared Access Signature maakt om het volgende bericht in een wachtrij te bekijken en het aantal berichten van de wachtrij op te halen. Deze handtekening verleent leesmachtigingen voor de wachtrij. Ten slotte wordt in dit voorbeeld de Shared Access Signature gebruikt om een bericht te bekijken en vervolgens de metagegevens van de wachtrijen te lezen, inclusief het aantal berichten.

Bekijk de volgende ondertekende handtekeningvelden, de constructie van de tekenreeks-naar-tekenreeks en de constructie van de URL die de bewerkingen Peek Messages en Get Queue Metadata aanroept:

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  
  

Tabelvoorbeelden

Deze sectie bevat voorbeelden van handtekeningen voor gedeelde toegang voor REST-bewerkingen in tabellen. In deze voorbeelden wordt de bewerking Table-service alleen uitgevoerd nadat aan de volgende criteria is voldaan:

  • De aanvraag is geautoriseerd.

  • De aanvraag wordt gedaan binnen het tijdsbestek dat is opgegeven door de shared access signature.

  • De aanvraag is niet in strijd met een voorwaarde van een gekoppeld opgeslagen toegangsbeleid.

  • De wachtrij die door de aanvraag wordt opgegeven, is dezelfde wachtrij die is geautoriseerd door de handtekening voor gedeelde toegang.

Voorbeeld: een query uitvoeren op een tabel met behulp van een Shared Access Signature

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor het uitvoeren van query's op entiteiten in een tabel. De handtekening verleent querymachtigingen voor een specifiek bereik in de tabel. Ten slotte wordt in dit voorbeeld de Shared Access Signature gebruikt om query's uit te voeren op entiteiten binnen het bereik.

Bekijk de volgende ondertekende handtekeningvelden, de constructie van de tekenreeks StringToSign en de constructie van de URL die de bewerking Query Entities aanroept. De resultaten van deze queryentiteitenbewerking bevatten alleen entiteiten in het bereik dat is gedefinieerd door startpk, startrk, endpken 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  
  

Voorbeeld: Een tabel bijwerken met behulp van een Shared Access Signature

In het volgende voorbeeld ziet u hoe u een shared access signature maakt voor het bijwerken van entiteiten in een tabel. De handtekening verleent bijwerkmachtigingen voor een specifiek bereik van entiteiten. Ten slotte wordt in dit voorbeeld de Shared Access Signature gebruikt om een entiteit in het bereik bij te werken.

Bekijk de volgende ondertekende handtekeningvelden, de constructie van de tekenreeks StringToSign en de constructie van de URL die de bewerking Entiteit bijwerken aanroept. De bewerking Entiteit bijwerken kan alleen entiteiten bijwerken binnen het partitiebereik dat is gedefinieerd door startpk en 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>  
  

Zie ook

Toegang delegeren met een handtekening voor gedeelde toegang
Een service-SAS maken