サービス SAS の例
このトピックでは、REST API での共有アクセス署名の使用例を紹介します。 共有アクセス署名を使用すると、コンテナーと BLOB、テーブル、キュー、またはファイルへのアクセス権を提供できます。 共有アクセス署名を提供することで、特定のコンテナー、BLOB、キュー、テーブル、またはテーブル エンティティ範囲に対する制限付きアクセスを、期間を指定してユーザーに付与できます。 共有アクセス署名の構築、解析、および使用の詳細については、「Shared Access Signature を使用した アクセスの委任」を参照してください。 .NET ストレージ クライアント ライブラリを使用して共有アクセス署名を作成する方法については、「Shared Access Signature の作成と使用」を参照してください。
BLOB の例
このセクションでは、BLOB での REST 操作に対する共有アクセス署名の例を紹介します。
例: コンテナーの共有アクセス署名を使用して BLOB を取得する
2013-08-15 より前のバージョン
次の例は、コンテナーの読み取りアクセスに対する共有アクセス署名の作成方法を示しています。
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 で表されるリソースは BLOB ですが、共有アクセス署名はコンテナーで指定されます。 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>
バージョン 2013-08-15 以降
次の例は、ストレージ サービスのバージョン 2013-08-15 を使用したコンテナーの読み取りアクセスに対する共有アクセス署名の作成方法を示しています。
バージョン 2013-08-15 には、この共有アクセス署名のみの応答ヘッダーをオーバーライドする要求をクライアントが発行できるようにする新しいクエリ パラメーターが導入されています。
応答ヘッダーと対応するクエリ パラメーターを次に示します。
応答ヘッダー名 | 対応する 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=
この共有アクセス署名では、pictures コンテナーに対する指定した期間の読み取りアクセス許可が指定されています。 要求 URL で表されるリソースは BLOB ですが、共有アクセス署名はコンテナーで指定されます。 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
この署名を使用して要求を行うクライアントの場合、次の条件が満たされた場合、 Blob の取得 操作が実行されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されている BLOB (/myaccount/pictures/profile.jpg) が、署名対象のリソースとして指定されているコンテナー (/myaccount/pictures) の中に存在する。
Shared Access Signature で と rscd=file; attachment
をrsct=binary
指定すると、応答のコンテンツ タイプヘッダーとコンテンツ処理ヘッダーがそれぞれオーバーライドされます。
この共有アクセス署名を使用して実行された要求の適切な応答は、次のようになります。
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
例: コンテナーの Shared Access Signature を使用して BLOB をアップロードする
次の例は、BLOB の書き込みに対する共有アクセス署名の作成方法を示しています。 この例では、コンテナーのすべての BLOB に対する書き込みアクセス許可を付与する署名を作成します。 その後、共有アクセス署名を使用して、コンテナーの BLOB への書き込みを行います。
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 で表されるリソースは BLOB ですが、共有アクセス署名はコンテナーで指定されます。 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.
このシグネチャを使用すると、次の条件が満たされた場合に Put BLOB が呼び出されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されている BLOB (/myaccount/pictures/photo.jpg) が、署名対象のリソースとして指定されているコンテナー (/myaccount/pictures) にある。
例: BLOB の共有アクセス署名を使用して BLOB を削除する
次の例は、BLOB の削除アクセス許可を付与し、BLOB を削除する共有アクセス署名を作成する方法を示しています。
注意事項
クライアントにデータの削除を許可すると予期しない結果になる可能性があるので、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 では、pictures コンテナーに対する指定した期間の削除アクセス許可が指定されています。 要求 URL で表されるリソースは BLOB であり、共有アクセス署名はその BLOB で指定されます。 BLOB のコンテナーに対してこれを指定して、コンテナーの任意の BLOB を削除するアクセス許可を付与することもできます。
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
このシグネチャを使用すると、次の条件が満たされた場合に Blob の削除 が呼び出されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されている BLOB (/myaccount/pictures/profile.jpg) が、署名対象のリソースとして指定されている BLOB と一致する。
ファイルの例
このセクションには、ファイルに対する REST 操作の共有アクセス署名を示す例が含まれています。
例: 共有の Shared Access Signature を使用してファイルを取得する
次の例は、共有に対する読み取りアクセス用の共有アクセス署名を作成する方法を示しています。
クライアントが要求を発行して、この共有アクセス署名の応答ヘッダーをオーバーライドできるようにするクエリ パラメーターはほとんどありません。
応答ヘッダーと対応するクエリ パラメーターを次に示します。
応答ヘッダー名 | 対応する 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=
共有アクセス署名は、指定された間隔の共有に対する pictures
読み取りアクセス許可を指定します。 要求 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
この署名を使用して要求を行うクライアントの場合、次の条件が満たされた場合、 ファイルの取得 操作が実行されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求 (/myaccount/pictures/profile.jpg) で指定されたファイルは、署名されたリソース (/myaccount/pictures) として指定された共有内に存在します。
Shared Access Signature で と rscd=file; attachment
をrsct=binary
指定すると、応答の ヘッダーと content-disposition
ヘッダーがそれぞれオーバーライドcontent-type
されます。
この共有アクセス署名を使用して実行された要求の適切な応答は、次のようになります。
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
例: 共有で Shared Access Signature を使用してファイルをアップロードする
次の例は、ファイルを書き込むための共有アクセス署名を作成する方法を示しています。 この例では、共有内のすべてのファイルに対する書き込みアクセス許可を付与する署名を作成します。 次に、共有アクセス署名を使用して、共有内のファイルに書き込みます。
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 で表されるリソースは BLOB ですが、共有アクセス署名はコンテナーで指定されます。 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.
このシグネチャを使用すると、次の条件が満たされた場合にファイルの 作成 が呼び出されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されたファイル (/myaccount/pictures/photo.jpg) は、署名されたリソース (/myaccount/pictures) として指定された共有内にあります。
例: ファイルの Shared Access Signature を使用してファイルを削除する
次の例では、ファイルの削除アクセス許可を付与し、共有アクセス署名を使用してファイルを削除する共有アクセス署名を作成する方法を示します。
注意事項
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 で表されるリソースはファイルであり、共有アクセス署名はそのファイルで指定されます。 ファイルの共有で指定して、共有内の任意のファイルを削除するアクセス許可を付与することもできます。
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
このシグネチャを使用すると、次の条件が満たされた場合、 ファイルの削除 が呼び出されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されたファイル (/myaccount/pictures/profile.jpg) は、署名されたリソースとして指定されたファイルと一致します。
キューの例
このセクションでは、キューでの REST 操作に対する共有アクセス署名の例を紹介します。 これらの例では、次の条件が満たされた場合にのみキューのサービス操作が実行されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されたキューが、共有アクセス署名で承認されたキューと同じである。
例: 共有アクセス署名を使用してメッセージを取得する
次の例は、キューからメッセージを取得するための共有アクセス署名の作成方法を示しています。 この署名は、キューに対するメッセージ処理のアクセス許可を付与します。 最後に、この例では共有アクセス署名を使用して、メッセージをキューから取得します。
次の署名付き署名フィールド、文字列対署名の構築、および要求が承認された後にメッセージの取得操作を呼び出す 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
例: 共有アクセス署名を使用してメッセージを追加する
次の例は、キューにメッセージを追加するための共有アクセス署名の作成方法を示しています。 この署名は、キューに対する追加アクセス許可を付与します。 最後に、この例では署名を使用して、メッセージを追加します。
次の署名付き署名フィールド、StringToSign 文字列の構築、および要求が承認された後に Put Message 操作を呼び出す URL の構築を調べます。
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 の構築を確認します。
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
テーブルの例
このセクションでは、テーブルでの REST 操作に対する共有アクセス署名の例を紹介します。 これらの例では、次の条件が満たされた場合にのみ Table Service の操作が実行されます。
要求が正常に承認されました。
要求が、共有アクセス署名で指定されている期間内に行われる。
要求が、保存されている関連アクセス ポリシーのどの条項にも違反していない。
要求で指定されたキューが、共有アクセス署名で承認されたキューと同じである。
例: 共有アクセス署名を使用してテーブルにクエリを実行する
次の例は、テーブルのエンティティにクエリを実行するための共有アクセス署名の作成方法を示しています。 署名は、テーブルの特定の範囲に対するクエリ アクセス許可を付与します。 最後に、この例では共有アクセス署名を使用して、その範囲内のエンティティに対してクエリを実行します。
次の署名フィールド、StringToSign 文字列の構造、および Query Entities 操作を呼び出す URL の構造を確認してください。 この 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
例: 共有アクセス署名を使用してテーブルを更新する
次の例は、テーブルのエンティティを更新するための共有アクセス署名の作成方法を示しています。 署名は、エンティティの特定の範囲に対する更新アクセス許可を付与します。 最後に、この例では共有アクセス署名を使用して、その範囲内のエンティティを更新します。
次の署名フィールド、StringToSign 文字列の構造、および Update Entity 操作を呼び出す URL の構造を確認してください。 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>