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