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
, 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 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)