Поделиться через


Примеры SAS службы

В этом разделе приведены образцы использования подписанных URL-адресов с API REST. Подписанные URL-адреса позволяют предоставлять права доступа к контейнерам, большим двоичным объектам, таблицам, очередям или файлам. С помощью подписанного URL-адреса можно предоставить пользователям ограниченный доступ к конкретному диапазону контейнеров, больших двоичных объектов, очередей, таблиц либо сущностей таблиц на указанный период времени. Полные сведения о создании, анализе и использовании подписанных URL-адресов см. в разделе Делегирование доступа с помощью подписанного URL-адреса. Сведения об использовании клиентской библиотеки хранилища .NET для создания подписанных URL-адресов см. в статье Создание и использование подписанного URL-адреса.

Примеры больших двоичных объектов

В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с большими двоичными объектами.

Пример. Получение BLOB-объекта с помощью подписанного URL-адреса контейнера

Версии до 15.08.2013

В следующем примере показано, как создать подписанный URL-адрес с целью предоставления к контейнеру доступа только для чтения.

Поля подписи, из которых будет состоять URL-адрес:

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

Подпись составляется следующим образом.

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=  

URL-адрес запроса указывает разрешения на pictures чтение контейнера в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.

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>  
  

Версия 2013-08-15 или более поздняя

В следующем примере показано, как создавать подписанные URL-адреса для доступа к контейнеру с разрешением только на чтение с помощью версии 2013-08-15 служб хранилища.

Версия 2013-08-15 предоставляет новые параметры запроса, позволяющие клиентам выдавать запросы с целью переопределения заголовков ответа только для этого подписанного URL-адреса.

Заголовки ответа и соответствующие параметры запроса являются следующими:

Имя заголовка ответа Соответствующий параметр запроса SAS
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Поля, которые составляют подписываемую строку для подписи:

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  

Подписываемая строка строится следующим образом.

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=  

Подписанный URL-адрес задает разрешения на чтение для контейнера изображений на указанный интервал. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.

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  
  

Для клиента, выполняющего запрос с этой подписью, операция получения BLOB-объекта будет выполнена при соблюдении следующих условий:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Большой двоичный объект, указанный в запросе (/myaccount/pictures/profile.jpg), хранится в контейнере, который задан, как подписанный ресурс (/myaccount/pictures).

Указание rsct=binary и rscd=file; attachment для подписанного URL-адреса переопределяет заголовки content-type и content-disposition в ответе соответственно.

Успешный ответ на запрос, созданный с использованием этого подписанного URL-адреса, будет иметь примерно такой вид:

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  

Пример. Отправка BLOB-объекта с помощью подписанного URL-адреса контейнера

В следующем примере показано, как создавать подписанный URL-адрес для записи большого двоичного объекта. В этом примере мы создаем подпись, которая предоставляет разрешения на запись для всех больших двоичных объектов в контейнере. Затем мы используем этот подписанный URL-адрес для записи в находящийся в контейнере большой двоичный объект.

Подписанные поля, которые будут содержать URL-адрес, включают:

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

Подпись составляется следующим образом.

  
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=  
  

URL-адрес запроса указывает разрешения на запись в контейнере pictures в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.

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.  
  

При использовании этой сигнатуры метод Put BLOB-объекта будет вызываться при соблюдении следующих условий:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Указанный запросом большой двоичный объект (/myaccount/pictures/фотографий.jpg) находится в контейнере, указанном в качестве подписанного ресурса (/myaccount/pictures).

Пример. Удаление BLOB-объекта с помощью подписанного URL-адреса BLOB-объекта

В следующем примере показано, как создать подписанный URL-адрес для предоставления разрешений на удаление для большого двоичного объекта и удалить большой двоичный объект.

Внимание!

Обратите внимание, что подписанный URL-адрес для операции DELETE следует распространять продуманно, поскольку предоставление клиенту разрешения удалять данные может иметь непредвиденные последствия.

Поля подписи, из которых будет состоять URL-адрес:

  
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  
  

Подпись составляется следующим образом.

  
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=  
  

URL-адрес запроса задает разрешения на удаление для контейнера изображений на указанный интервал. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, и для этого большого двоичного объекта указывается подписанный URL-адрес. Ее также можно указать для контейнера большого двоичного объекта. В этом случае будет предоставлено разрешение на удаление любого большого двоичного объекта из этого контейнера.

  
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  
  

С помощью этой сигнатуры метод Delete BLOB-объект будет вызываться при соблюдении следующих условий:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Указанный запросом большой двоичный объект (/myaccount/pictures/profile.jpg) соответствует большому двоичному объекту, заданному в качестве подписанного ресурса.

Примеры файлов

В этом разделе приведены примеры, демонстрирующие подписанные URL-адреса для операций REST с файлами.

Пример. Получение файла с помощью подписанного URL-адреса общей папки

В следующем примере показано, как создать подписанный URL-адрес для доступа на чтение в общей папке.

Несколько параметров запроса позволяют клиенту, выдающем запрос, переопределять заголовки ответов для этой подписанной URL-адреса.

Заголовки ответа и соответствующие параметры запроса являются следующими:

Имя заголовка ответа Соответствующий параметр запроса SAS
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

Поля, которые составляют подписываемую строку для подписи:

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  

Подписываемая строка строится следующим образом.

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=  

Подписанный URL-адрес указывает разрешения на чтение в общей папке pictures в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является файлом, но в общей папке указывается подписанный URL-адрес. Его также можно указать в самом файле.

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  
  

Для клиента, выполняющего запрос с этой подписью, операция получения файла будет выполнена при соблюдении следующих условий:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Файл, указанный запросом (/myaccount/pictures/profile.jpg), находится в общей папке, указанной в качестве подписанного ресурса (/myaccount/pictures).

Указание rsct=binary и rscd=file; attachment для подписанного URL-адреса переопределяет заголовки content-type и content-disposition в ответе соответственно.

Успешный ответ на запрос, созданный с использованием этого подписанного URL-адреса, будет иметь примерно такой вид:

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  

Пример. Отправка файла с помощью подписанного URL-адреса в общей папке

В следующем примере показано, как создать подписанный URL-адрес для записи файла. В этом примере мы создадим сигнатуру, которая предоставляет разрешения на запись для всех файлов в общей папке. Затем мы используем подписанный URL-адрес для записи в файл в общей папке.

Поля подписи, из которых будет состоять URL-адрес:

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

Подпись составляется следующим образом.

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=  

URL-адрес запроса указывает разрешения на запись в контейнере pictures в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является большим двоичным объектом, но подписанный URL-адресом указан в контейнере. Также можно указать ее для самого большого двоичного объекта.

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.  

С помощью этой сигнатуры будет вызываться create file , если выполняются следующие условия:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Файл, указанный в запросе (/myaccount/pictures/photo.jpg), находится в общей папке, указанной в качестве подписанного ресурса (/myaccount/pictures).

Пример. Удаление файла с помощью подписанного URL-адреса

В следующем примере показано, как создать подписанный URL-адрес, который предоставляет разрешения на удаление файла, а затем использует подписанный URL-адрес для удаления файла.

Внимание!

Подписанный URL-адрес для операции DELETE должен распространяться разумно, так как разрешение клиенту удалять данные может иметь непредвиденные последствия.

Поля подписи, из которых будет состоять URL-адрес:

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  

Подпись составляется следующим образом.

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=  

URL-адрес запроса указывает разрешения на удаление в общей папке изображений в течение указанного интервала. Ресурс, представленный URL-адресом запроса, является файлом, и в этом файле указывается подписанный URL-адрес. Кроме того, можно указать его в общей папке, чтобы предоставить разрешение на удаление любого файла в общей папке.

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  

С помощью этой сигнатуры метод Delete File будет вызываться при соблюдении следующих условий:

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Файл, указанный запросом (/myaccount/pictures/profile.jpg), соответствует файлу, указанному в качестве подписанного ресурса.

Примеры очереди

В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с очередями. В следующих примерах операция службы очередей выполняется только после выполнения следующих условий.

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Очередью, указанной запросом, является та же очередь, доступ к которой разрешен подписанным URL-адресом.

Пример. Получение сообщений с помощью подписанного URL-адреса

В следующем примере показано, как создавать подписанный URL-адрес для получения сообщений из очереди. Эта подпись предоставляет разрешения на обработку сообщений для очереди. И наконец, в этом примере с помощью подписанного URL-адреса производится получение сообщения из очереди.

Изучите следующие подписанные поля подписи, построение строки в знак и создание URL-адреса, который вызывает операцию Получения сообщений после авторизации запроса:

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  
  

Пример. Добавление сообщения с помощью подписанного URL-адреса

В следующем примере показано, как создавать подписанный URL-адрес для добавления сообщений в очередь. Эта подпись предоставляет разрешения на добавление для очереди. И наконец, в этом примере с помощью подписи выполняется добавление сообщения.

Изучите следующие поля подписи, конструкцию строки StringToSign и создание URL-адреса, который вызывает операцию Put Message после авторизации запроса:

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>  
  

Пример. Просмотр сообщений и получение сообщения с помощью подписанного URL-адреса

В следующем примере показано, как создавать подписанный URL-адрес для выбора следующего сообщения из очереди и получения количества сообщений в очереди. Эта подпись предоставляет разрешения на чтение для очереди. И наконец, в этом примере с помощью подписанного URL-адреса производится выбор сообщения и чтение метаданных очередей, в которых указано число сообщений.

Изучите следующие поля подписи, построение строки в знак и создание URL-адреса, который вызывает операции "Показать сообщения" и "Получить метаданные очереди ":

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  
  

Примеры таблиц

В этом разделе приведены примеры, демонстрирующие использование подписанных URL-адресов для операций REST с таблицами. В следующих примерах операция службы таблиц выполняется только после выполнения следующих условий.

  • Запрос успешно авторизован.

  • Запрос сделан в период времени, который задан подписанным URL-адресом.

  • Запрос не нарушает условия соответствующей политики доступа.

  • Очередью, указанной запросом, является та же очередь, доступ к которой разрешен подписанным URL-адресом.

Пример. Запрос таблицы с помощью подписанного URL-адреса

В следующем примере показано, как создать подписанный URL-адрес для запросов сущностей из таблицы. Подпись предоставляет разрешения на выполнение запросов к заданному диапазону из таблицы. И наконец, в этом примере подписанный URL-адрес используется для запроса сущностей из диапазона.

Ознакомьтесь с приведенными ниже подписанными полями, которые составляют конструкцию строки StringToSign и конструкцию URL-адреса, вызывающего операцию Query Entities. Результаты этой операции Query Entities будут содержать только сущности из диапазона, определенного параметрами startpk, startrk, endpk и 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  
  

Пример. Обновление таблицы с помощью подписанного URL-адреса

В следующем примере показано, как создать подписанный URL-адрес для обновления сущностей из таблицы. Подпись предоставляет разрешения на обновления для определенного диапазона сущностей. И наконец, в этом примере подписанный URL-адрес используется для обновления сущностей из этого диапазона.

Ознакомьтесь с приведенными ниже подписанными полями, которые составляют конструкцию строки StringToSign и конструкцию URL-адреса, вызывающего операцию Update Entity. Операция Update Entity может обновлять только сущности, находящиеся в диапазоне, который задан параметрами startpk и 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>  
  

См. также:

Делегирование доступа с помощью подписанного URL-адреса
Create a service SAS (Создание SAS на уровне службы)