Exemplos de SAS de serviço

Este tópico mostra o uso de exemplo de assinaturas de acesso compartilhado com a API REST. As assinaturas de acesso compartilhado permitem que você forneça direitos de acesso a contêineres e blobs, tabelas, filas ou arquivos. Ao fornecer uma assinatura de acesso compartilhado, você pode conceder a usuários acesso restrito a um determinado intervalo de contêiner, blob, fila, tabela ou entidade da tabela por um período de tempo especificado. Para obter detalhes completos sobre como construir, analisar e usar assinaturas de acesso compartilhado, consulte Delegando acesso com uma Assinatura de Acesso Compartilhado. Para obter informações sobre como usar a biblioteca de clientes de armazenamento .NET para criar assinaturas de acesso compartilhado, consulte Criar e usar uma assinatura de acesso compartilhado.

Exemplos de blob

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

Exemplo: obter um blob usando a assinatura de acesso compartilhado de um contêiner

Versões anteriores a 2013-08-15

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para acesso de leitura em um contêiner.

Os campos de assinatura assinados que compõem a 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 maneira:

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=  

A URL de solicitação especifica permissões de leitura no pictures contêiner para o intervalo designado. O recurso representado pela URL de solicitação é um blob, mas a assinatura de acesso compartilhado é especificada no contêiner. 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 a seguir mostra como criar uma assinatura de acesso compartilhado para acesso de leitura em um contêiner usando 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 que o cliente emita a solicitação para substituir os cabeçalhos de resposta apenas para essa assinatura de acesso compartilhado.

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

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

Os campos que compõem a string-to-sign 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 string-to-sign é construída da seguinte maneira:

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 compartilhado especifica permissões de leitura no contêiner imagens para o intervalo designado. O recurso representado pela URL de solicitação é um blob, mas a assinatura de acesso compartilhado é especificada no contêiner. 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 está fazendo uma solicitação com essa assinatura, a operação Obter Blob será executada se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pela solicitação (/myaccount/pictures/profile.jpg) reside no contêiner especificado como o recurso assinado (/myaccount/pictures).

Especificar rsct=binary e rscd=file; attachment na assinatura de acesso compartilhado substitui os cabeçalhos de tipo de conteúdo e disposição de conteúdo na resposta, respectivamente.

Uma resposta com êxito para uma solicitação feita usando essa assinatura de acesso compartilhado será semelhante ao 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: Upload um Blob usando a Assinatura de Acesso Compartilhado de um Contêiner

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para gravar um blob. Neste exemplo, construímos uma assinatura que concede permissões de gravação para todos os blobs no contêiner. Em seguida, usamos a assinatura de acesso compartilhado para gravar um blob no contêiner.

Os campos assinados que compõem a 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 maneira:

  
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=  
  

A URL de solicitação especifica permissões de gravação no pictures contêiner para o intervalo designado. O recurso representado pela URL de solicitação é um blob, mas a assinatura de acesso compartilhado é especificada no contêiner. 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 essa assinatura, Put Blob será chamado se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pela solicitação (/myaccount/pictures/photo.jpg) estiver no contêiner especificado como o recurso assinado (/myaccount/pictures).

Exemplo: excluir um blob usando a assinatura de acesso compartilhado de um blob

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado que concede permissões de exclusão para um blob e exclui um blob.

Cuidado

Observe que uma assinatura de acesso compartilhado para a operação DELETE deve ser distribuída criteriosamente, pois permitir que um cliente exclua dados pode ter consequências não intencionais.

Os campos de assinatura assinados que compõem a 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 maneira:

  
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=  
  

A URL da solicitação especifica permissões de exclusão no contêiner imagens para o intervalo designado. O recurso representado pela URL de solicitação é um blob e a assinatura de acesso compartilhado é especificada nesse blob. Também é possível especificá-lo no contêiner do blob para conceder permissão para excluir qualquer blob no contêiner.

  
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 essa assinatura, Excluir Blob será chamado se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O blob especificado pela solicitação (/myaccount/pictures/profile.jpg) corresponde ao blob especificado como o recurso assinado.

Exemplos de arquivo

Esta seção contém exemplos que demonstram assinaturas de acesso compartilhado para operações REST em arquivos.

Exemplo: obter um arquivo usando uma assinatura de acesso compartilhado do compartilhamento

O exemplo a seguir mostra como construir uma assinatura de acesso compartilhado para acesso de leitura em um compartilhamento.

Poucos parâmetros de consulta podem permitir que o cliente emitindo a solicitação substitua cabeçalhos de resposta para essa assinatura de acesso compartilhado.

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

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

Os campos que compõem a string-to-sign 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 string-to-sign é construída da seguinte maneira:

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 compartilhado especifica permissões de leitura no pictures compartilhamento para o intervalo designado. O recurso representado pela URL de solicitação é um arquivo, mas a assinatura de acesso compartilhado é especificada no compartilhamento. Também é possível especifique-o no próprio arquivo.

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 faz uma solicitação com essa assinatura, a operação Obter Arquivo será executada se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O arquivo especificado pela solicitação (/myaccount/pictures/profile.jpg) reside no compartilhamento especificado como o recurso assinado (/myaccount/pictures).

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

Uma resposta com êxito para uma solicitação feita usando essa assinatura de acesso compartilhado será semelhante ao 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: Upload um arquivo usando uma assinatura de acesso compartilhado em um compartilhamento

O exemplo a seguir mostra como construir uma assinatura de acesso compartilhado para gravar um arquivo. Neste exemplo, criamos uma assinatura que concede permissões de gravação para todos os arquivos no compartilhamento. Em seguida, usamos a assinatura de acesso compartilhado para gravar em um arquivo no compartilhamento.

Os campos de assinatura assinados que compõem a 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 maneira:

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=  

A URL de solicitação especifica permissões de gravação no pictures contêiner para o intervalo designado. O recurso representado pela URL de solicitação é um blob, mas a assinatura de acesso compartilhado é especificada no contêiner. 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 essa assinatura, Criar Arquivo será chamado se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O arquivo especificado pela solicitação (/myaccount/pictures/photo.jpg) está no compartilhamento especificado como o recurso assinado (/myaccount/pictures).

Exemplo: excluir arquivo usando a assinatura de acesso compartilhado de um arquivo

O exemplo a seguir mostra como construir uma assinatura de acesso compartilhado que concede permissões de exclusão para um arquivo e, em seguida, usa a assinatura de acesso compartilhado para excluir o arquivo.

Cuidado

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

Os campos de assinatura assinados que compõem a 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 maneira:

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=  

A URL de solicitação especifica permissões de exclusão no compartilhamento de imagens para o intervalo designado. O recurso representado pela URL de solicitação é um arquivo e a assinatura de acesso compartilhado é especificada nesse arquivo. Também é possível especifique-o no compartilhamento do arquivo para conceder permissão para excluir qualquer arquivo no compartilhamento.

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 essa assinatura, Excluir Arquivo será chamado se os seguintes critérios forem atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • O arquivo especificado pela solicitação (/myaccount/pictures/profile.jpg) corresponde ao arquivo especificado como o recurso assinado.

Exemplos de fila

Esta seção contém exemplos que demonstram assinaturas de acesso compartilhado para operações REST em filas. Nestes exemplos, a operação de serviço Fila é executada somente depois que os critérios a seguir são atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • A fila especificada pela solicitação é a mesma fila autorizada pela assinatura de acesso compartilhado.

Exemplo: recuperar mensagens usando uma assinatura de acesso compartilhado

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para recuperar mensagens de uma fila. Essa assinatura concede permissões de processamento de mensagem para a fila. Por fim, este exemplo usa a assinatura de acesso compartilhado para recuperar uma mensagem da fila.

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

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 usando uma assinatura de acesso compartilhado

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para adicionar uma mensagem a uma fila. Essa assinatura concede permissões de adição para a fila. Por fim, este exemplo usa a assinatura para adicionar uma mensagem.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de caracteres StringToSign e a construção da URL que chama a operação Colocar Mensagem depois que a solicitação é autorizada:

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: espiar mensagens e obter uma mensagem usando uma assinatura de acesso compartilhado

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para espiar a próxima mensagem em uma fila e recuperar a contagem de mensagem da fila. Essa assinatura concede permissões de leitura para a fila. Por fim, este exemplo usa a assinatura de acesso compartilhado para espiar uma mensagem e depois ler os metadados das filas, que inclui a contagem de mensagem.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de caracteres para o sinal e a construção da URL que chama as operações Espiar Mensagens e Obter Metadados da 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 seção contém exemplos que demonstram assinaturas de acesso compartilhado para operações REST em tabelas. Nestes exemplos, a operação de serviço Tabela é executada somente depois que os critérios a seguir são atendidos:

  • A solicitação foi autorizada com êxito.

  • A solicitação é feita no período de tempo especificado pela assinatura de acesso compartilhado.

  • A solicitação não viola nenhum termo de uma política de acesso armazenada associada.

  • A fila especificada pela solicitação é a mesma fila autorizada pela assinatura de acesso compartilhado.

Exemplo: consultar uma tabela usando uma assinatura de acesso compartilhado

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para consultar entidades em uma tabela. A assinatura concede permissões de consulta para um intervalo específico na tabela. Por fim, este exemplo usa a assinatura de acesso compartilhado para consultar entidades dentro do intervalo.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de caracteres de StringToSign e a construção da URL que chama a operação Query Entities. Os resultados dessa operação Query Entities incluirão apenas entidades no intervalo definido por startpk, startrk, endpk e endrk.

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

Exemplo: atualizar uma tabela usando uma assinatura de acesso compartilhado

O exemplo a seguir mostra como criar uma assinatura de acesso compartilhado para atualizar entidades em uma tabela. A assinatura concede permissões de atualização para um intervalo específico de entidades. Por fim, este exemplo usa a assinatura de acesso compartilhado para atualizar uma entidade no intervalo.

Examine os seguintes campos de assinatura assinados, a construção da cadeia de caracteres de StringToSign e a construção da URL que chama a operação Update Entity. A operação Update Entity somente pode atualizar entidades dentro do intervalo de partição 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 acesso com uma assinatura de acesso compartilhado
Criar uma SAS de serviço