Exemplos de SAS de serviço

Este tópico mostra as utilizações de exemplo de assinaturas de acesso partilhado com a API REST. As assinaturas de acesso partilhado permitem-lhe fornecer direitos de acesso a contentores e blobs, tabelas, filas ou ficheiros. Ao fornecer uma assinatura de acesso partilhado, pode conceder aos utilizadores acesso restrito a um contentor, blob, fila, tabela ou intervalo de entidades de tabela específico durante um determinado período de tempo. Para obter detalhes completos sobre como construir, analisar e utilizar assinaturas de acesso partilhado, veja Delegar o Acesso com uma Assinatura de Acesso Partilhado. Para obter informações sobre como utilizar a biblioteca de cliente de armazenamento .NET para criar assinaturas de acesso partilhado, consulte Criar e Utilizar uma Assinatura de Acesso Partilhado.

Exemplos de Blobs

Esta secção contém exemplos que demonstram assinaturas de acesso partilhado para operações REST em blobs.

Exemplo: Obter um Blob com a Assinatura de Acesso Partilhado de um Contentor

Versões Anteriores a 2013-08-15

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para acesso de leitura num contentor.

Os campos de assinatura assinados que irão incluir o URL incluem:

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

A assinatura é construída da seguinte forma:

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=  

O URL do pedido especifica permissões de leitura no pictures contentor para o intervalo designado. O recurso representado pelo URL do pedido é um blob, mas a assinatura de acesso partilhado é especificada no contentor. Também é possível especificá-lo no próprio blob.

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>  
  

Versão 2013-08-15 e Posterior

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para acesso de leitura num contentor com a versão 2013-08-15 dos serviços de armazenamento.

A versão 2013-08-15 introduz novos parâmetros de consulta que permitem ao cliente emitir o pedido para substituir os cabeçalhos de resposta apenas para esta assinatura de acesso partilhado.

Os cabeçalhos de resposta e os parâmetros de consulta correspondentes são os seguintes:

Nome do cabeçalho da resposta Parâmetro de consulta SAS correspondente
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Os campos que compõem a cadeia de carateres a assinar para a assinatura incluem:

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  

A cadeia de carateres a assinar é construída da seguinte forma:

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=  

A assinatura de acesso partilhado especifica permissões de leitura no contentor de imagens para o intervalo designado. O recurso representado pelo URL do pedido é um blob, mas a assinatura de acesso partilhado é especificada no contentor. Também é possível especificá-lo no próprio blob.

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  
  

Para um cliente que faça um pedido com esta assinatura, a operação Obter Blob será executada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pelo pedido (/myaccount/pictures/profile.jpg) reside no contentor especificado como o recurso assinado (/myaccount/pictures).

Especificar rsct=binary e rscd=file; attachment na assinatura de acesso partilhado substitui os cabeçalhos content-type e content-disposition na resposta, respetivamente.

Uma resposta bem-sucedida para um pedido feito com esta assinatura de acesso partilhado será semelhante à seguinte:

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  

Exemplo: Carregar um Blob com a Assinatura de Acesso Partilhado de um Contentor

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para escrever um blob. Neste exemplo, criamos uma assinatura que concede permissões de escrita para todos os blobs no contentor. Em seguida, utilizamos a assinatura de acesso partilhado para escrever num blob no contentor.

Os campos assinados que irão incluir o URL incluem:

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

A assinatura é construída da seguinte forma:

  
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=  
  

O URL do pedido especifica permissões de escrita no pictures contentor para o intervalo designado. O recurso representado pelo URL do pedido é um blob, mas a assinatura de acesso partilhado é especificada no contentor. Também é possível especificá-lo no próprio blob.

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.  
  

Com esta assinatura, a opção Colocar Blob será chamada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pelo pedido (/myaccount/pictures/photo.jpg) está no contentor especificado como o recurso assinado (/myaccount/pictures).

Exemplo: Eliminar Blob com a Assinatura de Acesso Partilhado de um Blob

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado que concede permissões de eliminação para um blob e elimina um blob.

Atenção

Tenha em atenção que uma assinatura de acesso partilhado para uma operação DELETE deve ser distribuída criteriosamente, uma vez que permitir que um cliente elimine dados pode ter consequências não intencionais.

Os campos de assinatura assinados que irão incluir o URL incluem:

  
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  
  

A assinatura é construída da seguinte forma:

  
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=  
  

O URL do pedido especifica permissões de eliminação no contentor de imagens para o intervalo designado. O recurso representado pelo URL do pedido é um blob e a assinatura de acesso partilhado é especificada nesse blob. Também é possível especificá-lo no contentor do blob para conceder permissão para eliminar qualquer blob no contentor.

  
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  
  

Com esta assinatura, a opção Eliminar Blob será chamada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pelo pedido (/myaccount/pictures/profile.jpg) corresponde ao blob especificado como recurso assinado.

Exemplos de Ficheiros

Esta secção contém exemplos que demonstram assinaturas de acesso partilhado para operações REST em ficheiros.

Exemplo: Obter um Ficheiro com a Assinatura de Acesso Partilhado de uma Partilha

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para acesso de leitura numa partilha.

Poucos parâmetros de consulta podem permitir que o cliente emita o pedido para substituir os cabeçalhos de resposta para esta assinatura de acesso partilhado.

Os cabeçalhos de resposta e os parâmetros de consulta correspondentes são os seguintes:

Nome do cabeçalho da resposta Parâmetro de consulta SAS correspondente
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Os campos que compõem a cadeia de carateres a assinar para a assinatura incluem:

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  

A cadeia de carateres a assinar é construída da seguinte forma:

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=  

A assinatura de acesso partilhado especifica permissões de leitura na pictures partilha para o intervalo designado. O recurso representado pelo URL do pedido é um ficheiro, mas a assinatura de acesso partilhado é especificada na partilha. Também é possível especificá-lo no próprio ficheiro.

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  
  

Para um cliente que faça um pedido com esta assinatura, a operação Obter Ficheiro será executada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O ficheiro especificado pelo pedido (/myaccount/pictures/profile.jpg) reside na partilha especificada como o recurso assinado (/myaccount/pictures).

Especificar rsct=binary e rscd=file; attachment na assinatura de acesso partilhado substitui os content-type cabeçalhos e content-disposition na resposta, respetivamente.

Uma resposta bem-sucedida para um pedido feito com esta assinatura de acesso partilhado será semelhante à seguinte:

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  

Exemplo: Carregar um Ficheiro com uma Assinatura de Acesso Partilhado numa Partilha

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para escrever um ficheiro. Neste exemplo, criamos uma assinatura que concede permissões de escrita para todos os ficheiros na partilha. Em seguida, utilizamos a assinatura de acesso partilhado para escrever num ficheiro na partilha.

Os campos de assinatura assinados que irão incluir o URL incluem:

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

A assinatura é construída da seguinte forma:

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=  

O URL do pedido especifica permissões de escrita no pictures contentor para o intervalo designado. O recurso representado pelo URL do pedido é um blob, mas a assinatura de acesso partilhado é especificada no contentor. Também é possível especificá-lo no próprio blob.

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.  

Com esta assinatura, a opção Criar Ficheiro será chamada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O ficheiro especificado pelo pedido (/myaccount/pictures/photo.jpg) está na partilha especificada como o recurso assinado (/myaccount/pictures).

Exemplo: Eliminar Ficheiro com a Assinatura de Acesso Partilhado de um Ficheiro

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado que concede permissões de eliminação para um ficheiro e, em seguida, utiliza a assinatura de acesso partilhado para eliminar o ficheiro.

Atenção

Uma assinatura de acesso partilhado para uma operação DELETE deve ser distribuída criteriosamente, uma vez que permitir que um cliente elimine dados pode ter consequências não intencionais.

Os campos de assinatura assinados que irão incluir o URL incluem:

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  

A assinatura é construída da seguinte forma:

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=  

O URL do pedido especifica permissões de eliminação na partilha de imagens para o intervalo designado. O recurso representado pelo URL do pedido é um ficheiro e a assinatura de acesso partilhado é especificada nesse ficheiro. Também é possível especificá-lo na partilha do ficheiro para conceder permissão para eliminar qualquer ficheiro na partilha.

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  

Com esta assinatura, a opção Eliminar Ficheiro será chamada se os seguintes critérios forem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • O ficheiro especificado pelo pedido (/myaccount/pictures/profile.jpg) corresponde ao ficheiro especificado como recurso assinado.

Exemplos de Fila

Esta secção contém exemplos que demonstram assinaturas de acesso partilhado para operações REST em filas. Nestes exemplos, a operação do serviço Fila só é executada depois de os seguintes critérios serem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • A fila especificada pelo pedido é a mesma fila autorizada pela assinatura de acesso partilhado.

Exemplo: Obter Mensagens com uma Assinatura de Acesso Partilhado

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para obter mensagens de uma fila. Esta assinatura concede permissões de processamento de mensagens para a fila. Por fim, este exemplo utiliza a assinatura de acesso partilhado para obter uma mensagem da fila.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de carateres a assinar e a construção do URL que chama a operação Obter Mensagens após a autorização do pedido:

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  
  

Exemplo: Adicionar uma Mensagem com uma Assinatura de Acesso Partilhado

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para adicionar uma mensagem a uma fila. Esta assinatura concede permissões de adição para a fila. Por fim, este exemplo utiliza a assinatura para adicionar uma mensagem.

Examine os seguintes campos de assinatura assinados, a construção da cadeia StringToSign e a construção do URL que chama a operação Colocar Mensagem após a autorização do pedido:

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>  
  

Exemplo: Pré-visualizar Mensagens e Obter uma Mensagem com uma Assinatura de Acesso Partilhado

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para pré-visualizar a mensagem seguinte numa fila e obter a contagem de mensagens da fila. Esta assinatura concede permissões de leitura para a fila. Por fim, este exemplo utiliza a assinatura de acesso partilhado para espreitar uma mensagem e, em seguida, ler os metadados das filas, que incluem a contagem de mensagens.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de carateres a assinar e a construção do URL que chama as operações Mensagens de Pré-visualização e Obter Metadados de Fila :

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  
  

Exemplos de Tabela

Esta secção contém exemplos que demonstram assinaturas de acesso partilhado para operações REST em tabelas. Nestes exemplos, a operação de serviço Tabela só é executada depois de os seguintes critérios serem cumpridos:

  • O pedido foi autorizado com êxito.

  • O pedido é feito dentro do período de tempo especificado pela assinatura de acesso partilhado.

  • O pedido não viola nenhum termo de uma política de acesso armazenada associada.

  • A fila especificada pelo pedido é a mesma fila autorizada pela assinatura de acesso partilhado.

Exemplo: Consultar uma Tabela com uma Assinatura de Acesso Partilhado

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para consultar entidades numa tabela. A assinatura concede permissões de consulta para um intervalo específico na tabela. Por fim, este exemplo utiliza a assinatura de acesso partilhado para consultar entidades dentro do intervalo.

Examine os seguintes campos de assinatura assinados, a construção da cadeia StringToSign e a construção do URL que chama a operação Entidades de Consulta. Os resultados desta operação Entidades de Consulta só incluirão entidades no intervalo definido por startpk, startrk, endpke 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  
  

Exemplo: Atualizar uma Tabela com uma Assinatura de Acesso Partilhado

O exemplo seguinte mostra como construir uma assinatura de acesso partilhado para atualizar entidades numa tabela. A assinatura concede permissões de atualização para um intervalo específico de entidades. Por fim, este exemplo utiliza a assinatura de acesso partilhado para atualizar uma entidade no intervalo.

Examine os seguintes campos de assinatura assinados, a construção da cadeia StringToSign e a construção do URL que chama a operação Atualizar Entidade. A operação Atualizar Entidade só pode atualizar entidades dentro do intervalo de partições definido por 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>  
  

Consulte também

Delegar o acesso com uma assinatura de acesso partilhado
Create a service SAS (Criar uma SAS de serviço)