Exemples de sap de service

Cette rubrique illustre des exemples d'utilisation de signatures d'accès partagé avec l'API REST. Les signatures d’accès partagé vous permettent de fournir des droits d’accès aux conteneurs et objets blob, tables, files d’attente ou fichiers. En fournissant une signature d'accès partagé, vous pouvez accorder aux utilisateurs un accès limité à une plage spécifique d'entités conteneur, objet blob, file d'attente ou table pendant une période spécifique. Pour plus d’informations sur la construction, l’analyse et l’utilisation de signatures d’accès partagé, consultez Déléguer l’accès avec une signature d’accès partagé. Pour plus d’informations sur l’utilisation de la bibliothèque cliente de stockage .NET pour créer des signatures d’accès partagé, consultez Créer et utiliser une signature d’accès partagé.

Exemples d'objet blob

Cette section contient des exemples qui illustrent les signatures d'accès partagé des opérations REST sur les objets blob.

Exemple : obtenir un objet blob à l'aide de la signature d'accès partagé d'un conteneur

Versions antérieures à la version 2013-08-15

L'exemple suivant montre comment construire une signature d'accès partagé pour l'accès en lecture sur un conteneur.

Les champs de signature signés qui contiennent l'URL incluent :

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

La signature est construite comme suit :

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 de demande spécifie les autorisations de lecture sur le pictures conteneur pour l’intervalle désigné. La ressource représentée par l’URL de requête est un objet blob, mais la signature d’accès partagé est spécifiée sur le conteneur. Il est également possible de la spécifier sur l'objet blob proprement dit.

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>  
  

Version du 15/08/2013 et versions ultérieures

L'exemple suivant montre comment construire une signature d'accès partagé pour l'accès en lecture sur un conteneur à l'aide de la version du 15/08/2013 des services de stockage.

La version du 15/08/2013 introduit de nouveaux paramètres de requête qui permettent au client qui émet la demande de remplacer des en-têtes de réponse uniquement pour cette signature d'accès partagé.

Les en-têtes de réponse et les paramètres de requête correspondant sont les suivants :

Nom de l'en-tête de réponse Paramètre de requête SAS correspondant
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Les champs qui contiennent la chaîne de signature incluent :

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 chaîne de signature est construite comme suit :

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 signature d'accès partagé spécifie des autorisations en lecture sur le conteneur d'images pour l'intervalle indiqué. La ressource représentée par l’URL de requête est un objet blob, mais la signature d’accès partagé est spécifiée sur le conteneur. Il est également possible de la spécifier sur l'objet blob proprement dit.

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  
  

Pour un client qui effectue une demande avec cette signature, l’opération Get Blob est exécutée si les critères suivants sont remplis :

  • La demande est autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • L'objet blob spécifié par la demande (/myaccount/pictures/profile.jpg) réside dans le conteneur spécifié comme ressource signée (/myaccount/pictures).

La spécification rsct=binary et rscd=file; attachment sur la signature d’accès partagé remplace les en-têtes content-type et content-disposition dans la réponse, respectivement.

Une réponse réussie pour une demande faite avec cette signature d'accès partagé est semblable à la suivante :

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  

Exemple : Charger un objet blob à l’aide de la signature d’accès partagé d’un conteneur

L'exemple suivant montre comment construire une signature d'accès partagé pour l'écriture d'un objet blob. Dans cet exemple, nous construisons une signature qui accorde des autorisations d'écriture pour tous les objets blob du conteneur. Puis, nous utilisons la signature d'accès partagé pour écrire dans un objet blob du conteneur.

Les champs signés qui composeront l’URL sont les suivants :

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

La signature est construite comme suit :

  
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 de demande spécifie les autorisations d’écriture sur le pictures conteneur pour l’intervalle désigné. La ressource représentée par l’URL de requête est un objet blob, mais la signature d’accès partagé est spécifiée sur le conteneur. Il est également possible de la spécifier sur l'objet blob proprement dit.

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.  
  

Avec cette signature, Put Blob est appelé si les critères suivants sont remplis :

  • La demande est autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • L'objet blob spécifié par la demande (/myaccount/pictures/photo.jpg) réside dans le conteneur spécifié comme ressource signée (/myaccount/pictures).

Exemple : supprimer un objet blob à l'aide de la signature d'accès partagé d'un objet blob

Cet exemple montre comment construire une signature d'accès partagé qui accorde des autorisations de suppression d'un objet blob, et supprime un objet blob.

Attention

Notez qu'une signature d'accès partagé pour une opération de suppression (DELETE) doit être distribuée judicieusement, car autoriser un client à supprimer des données peut avoir des conséquences inattendues.

Les champs de signature signés qui contiennent l'URL incluent :

  
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 signature est construite comme suit :

  
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=  
  

L'URL de la requête spécifie des autorisations de suppression sur le conteneur d'images pour l'intervalle indiqué. La ressource représentée par l’URL de requête est un objet blob et la signature d’accès partagé est spécifiée sur cet objet blob. Il est également possible de la spécifier sur le conteneur de l'objet blob pour accorder l'autorisation de supprimer un objet blob dans le conteneur.

  
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  
  

Avec cette signature, Supprimer l’objet blob est appelé si les critères suivants sont remplis :

  • La demande est autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • L'objet blob spécifié par la demande (/myaccount/pictures/profile.jpg) correspond à l'objet blob spécifié comme ressource signée.

Exemples de fichiers

Cette section contient des exemples qui illustrent les signatures d’accès partagé pour les opérations REST sur les fichiers.

Exemple : Obtenir un fichier à l’aide de la signature d’accès partagé d’un partage

L’exemple suivant montre comment construire une signature d’accès partagé pour l’accès en lecture sur un partage.

Peu de paramètres de requête peuvent permettre au client qui émet la demande de remplacer les en-têtes de réponse pour cette signature d’accès partagé.

Les en-têtes de réponse et les paramètres de requête correspondant sont les suivants :

Nom de l'en-tête de réponse Paramètre de requête SAS correspondant
Cache-Control Rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Les champs qui contiennent la chaîne de signature incluent :

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 chaîne de signature est construite comme suit :

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 signature d’accès partagé spécifie les autorisations de lecture sur le pictures partage pour l’intervalle désigné. La ressource représentée par l’URL de requête est un fichier, mais la signature d’accès partagé est spécifiée sur le partage. Il est également possible de le spécifier sur le fichier lui-même.

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  
  

Pour un client qui effectue une demande avec cette signature, l’opération Obtenir le fichier est exécutée si les critères suivants sont remplis :

  • La demande est autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • Le fichier spécifié par la requête (/myaccount/pictures/profile.jpg) réside dans le partage spécifié en tant que ressource signée (/myaccount/pictures).

La spécification rsct=binary et rscd=file; attachment sur la signature d’accès partagé remplace les content-type en-têtes et content-disposition dans la réponse, respectivement.

Une réponse réussie pour une demande faite avec cette signature d'accès partagé est semblable à la suivante :

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  

Exemple : Charger un fichier à l’aide d’une signature d’accès partagé sur un partage

L’exemple suivant montre comment construire une signature d’accès partagé pour écrire un fichier. Dans cet exemple, nous construisons une signature qui accorde des autorisations d’écriture pour tous les fichiers du partage. Ensuite, nous utilisons la signature d’accès partagé pour écrire dans un fichier dans le partage.

Les champs de signature signés qui contiennent l'URL incluent :

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 signature est construite comme suit :

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 de demande spécifie les autorisations d’écriture sur le pictures conteneur pour l’intervalle désigné. La ressource représentée par l’URL de requête est un objet blob, mais la signature d’accès partagé est spécifiée sur le conteneur. Il est également possible de la spécifier sur l'objet blob proprement dit.

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.  

Avec cette signature, Créer un fichier est appelé si les critères suivants sont remplis :

  • La demande est autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • Le fichier spécifié par la demande (/myaccount/pictures/photo.jpg) se trouve dans le partage spécifié en tant que ressource signée (/myaccount/pictures).

Exemple : Supprimer un fichier à l’aide de la signature d’accès partagé d’un fichier

L’exemple suivant montre comment construire une signature d’accès partagé qui accorde des autorisations de suppression pour un fichier, puis utilise la signature d’accès partagé pour supprimer le fichier.

Attention

Une signature d’accès partagé pour une opération DELETE doit être distribuée judicieusement, car permettre à un client de supprimer des données peut avoir des conséquences inattendues.

Les champs de signature signés qui contiennent l'URL incluent :

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 signature est construite comme suit :

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 de demande spécifie les autorisations de suppression sur le partage d’images pour l’intervalle désigné. La ressource représentée par l’URL de la demande est un fichier, et la signature d’accès partagé est spécifiée sur ce fichier. Il est également possible de le spécifier sur le partage du fichier pour accorder l’autorisation de supprimer n’importe quel fichier du partage.

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  

Avec cette signature, Delete File est appelé si les critères suivants sont remplis :

  • La demande est correctement autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • Le fichier spécifié par la demande (/myaccount/pictures/profile.jpg) correspond au fichier spécifié en tant que ressource signée.

Exemples de file d'attente

Cette section contient des exemples qui illustrent les signatures d'accès partagé des opérations REST sur les files d'attente. Dans ces exemples, l'opération de service de File d'attente fonctionne uniquement après que les critères suivants sont satisfaits :

  • La demande est correctement autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • La file d'attente spécifiée par la demande est identique à celle autorisée par la signature d'accès partagé.

Exemple : extraire des messages à l'aide d'une signature d'accès partagé

L'exemple suivant montre comment construire une signature d'accès partagé pour l'extraction de messages d'une file d'attente. Cette signature accorde les autorisations de traitement de message pour la file d'attente. Enfin, cet exemple utilise la signature d'accès partagé pour extraire un message de la file d'attente.

Examinez les champs de signature signés suivants, la construction de la chaîne à signer et la construction de l’URL qui appelle l’opération Obtenir des messages après l’autorisation de la demande :

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  
  

Exemple : ajouter un message à l'aide d'une signature d'accès partagé

L'exemple suivant montre comment construire une signature d'accès partagé pour l'ajout d'un message à une file d'attente. Cette signature accorde les autorisations d'ajout pour la file d'attente. Enfin, cet exemple utilise la signature pour ajouter un message.

Examinez les champs de signature signés suivants, la construction de la chaîne StringToSign et la construction de l’URL qui appelle l’opération Put Message une fois la demande autorisée :

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>  
  

Exemple : lire des messages et extraire un message à l'aide d'une signature d'accès partagé

L'exemple suivant montre comment construire une signature d'accès partagé pour lire le message suivant dans une file d'attente et récupérer le nombre de messages de la file d'attente. Cette signature accorde des autorisations de lecture pour la file d'attente. Enfin, cet exemple utilise la signature d'accès partagé pour lire un message, puis lire les métadonnées des files d'attente, qui incluent le nombre de messages.

Examinez les champs de signature signés suivants, la construction de la chaîne à signer et la construction de l’URL qui appelle les opérations Aperçu des messages et Obtenir les métadonnées de file d’attente :

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  
  

Exemples de table

Cette section contient des exemples qui illustrent les signatures d'accès partagé des opérations REST sur les tables. Dans ces exemples, l'opération de service de Table fonctionne uniquement après que les critères suivants sont satisfaits :

  • La demande est correctement autorisée.

  • La demande est effectuée dans le délai spécifié par la signature d'accès partagé.

  • La demande respecte toutes les conditions d'une stratégie d'accès stockée associée.

  • La file d'attente spécifiée par la demande est identique à celle autorisée par la signature d'accès partagé.

Exemple : interroger une table à l'aide d'une signature d'accès partagé

L'exemple suivant montre comment construire une signature d'accès partagé pour interroger les entités d'une table. La signature accorde des autorisations d'interrogation pour une plage spécifique de la table. Enfin, cet exemple utilise la signature d'accès partagé pour interroger des entités de la plage.

Examinez ces champs de signature signés, la construction de la chaîne StringToSign et la construction de l'URL qui appelle l'opération Query Entities. Les résultats de cette opération Query Entities n'incluent que les entités de la plage définie par startpk, startrk, endpk et 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  
  

Exemple : mettre à jour une table à l'aide d'une signature d'accès partagé

L'exemple suivant montre comment construire une signature d'accès partagé pour mettre à jour les entités d'une table. La signature accorde des autorisations de mise à jour pour une plage spécifique d'entités. Enfin, cet exemple utilise la signature d'accès partagé pour mettre à jour une entité de la plage.

Examinez ces champs de signature signés, la construction de la chaîne StringToSign et la construction de l'URL qui appelle l'opération Update Entity. L'opération Update Entity peut uniquement mettre à jour des entités dans la plage de partition définie par startpk et 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>  
  

Voir aussi

Déléguer l’accès avec une signature d’accès partagé
Créer une SAP de service