Příklady SAS služby
Toto téma ukazuje ukázkové použití sdílených přístupových podpisů pomocí rozhraní REST API. Sdílené přístupové podpisy umožňují poskytovat přístupová práva ke kontejnerům a objektům blob, tabulkám, frontám nebo souborům. Poskytnutím sdíleného přístupového podpisu můžete uživatelům udělit omezený přístup ke konkrétnímu kontejneru, objektu blob, frontě, tabulce nebo rozsahu entit tabulky na zadanou dobu. Úplné podrobnosti o vytváření, parsování a používání sdílených přístupových podpisů najdete v tématu Delegování přístupu pomocí sdíleného přístupového podpisu. Informace o vytváření sdílených přístupových podpisů pomocí klientské knihovny úložiště .NET najdete v tématu Vytvoření a použití sdíleného přístupového podpisu.
Příklady objektů blob
Tato část obsahuje příklady, které ukazují sdílené přístupové podpisy pro operace REST s objekty blob.
Příklad: Získání objektu blob pomocí sdíleného přístupového podpisu kontejneru
Verze před 15. 8. 2013
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro přístup ke čtení v kontejneru.
Pole podepsaného podpisu, která budou obsahovat adresu URL, zahrnují:
signedstart=2009-02-09
signedexpiry=2009-02-10
signedresource=c
signedpermissions=r
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=
signedidentifier=YWJjZGVmZw==
signedversion=2012-02-12
Podpis se sestaví takto:
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=
Adresa URL požadavku určuje oprávnění ke čtení kontejneru pictures
po určený interval. Prostředek reprezentovaný adresou URL požadavku je objekt blob, ale sdílený přístupový podpis je zadaný v kontejneru. Je také možné ho zadat v samotném objektu 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>
Verze 2013-08-15 a novější
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro přístup pro čtení v kontejneru pomocí verze 2013-08-15 služeb úložiště.
Verze 2013-08-15 zavádí nové parametry dotazu, které umožňují klientovi vydávajícímu požadavek přepsat hlavičky odpovědi pouze pro tento sdílený přístupový podpis.
Hlavičky odpovědi a odpovídající parametry dotazu jsou následující:
Název hlavičky odpovědi | Odpovídající parametr dotazu SAS |
---|---|
Cache-Control |
rscc |
Content-Disposition |
rscd |
Content-Encoding |
rsce |
Content-Language |
rscl |
Content-Type |
rsct |
Pole, která tvoří řetězec k podpisu, zahrnují:
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
Řetězec k podepsání se sestaví takto:
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=
Sdílený přístupový podpis určuje oprávnění ke čtení kontejneru pictures po určený interval. Prostředek reprezentovaný adresou URL požadavku je objekt blob, ale sdílený přístupový podpis je zadaný v kontejneru. Je také možné ho zadat v samotném objektu 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
V případě klienta, který vytváří požadavek s tímto podpisem, se operace Získání objektu blob provede, pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Objekt blob určený požadavkem (/myaccount/pictures/profile.jpg) se nachází v kontejneru určeném jako podepsaný prostředek (/myaccount/pictures).
Zadání rsct=binary
a rscd=file; attachment
u sdíleného přístupového podpisu přepíše hlavičky content-type a content-disposition v odpovědi v uvedeném pořadí.
Úspěšná odpověď na požadavek učiněný pomocí tohoto sdíleného přístupového podpisu bude podobná následující:
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
Příklad: Nahrání objektu blob pomocí sdíleného přístupového podpisu kontejneru
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro zápis objektu blob. V tomto příkladu vytvoříme podpis, který uděluje oprávnění k zápisu pro všechny objekty blob v kontejneru. Potom použijeme sdílený přístupový podpis k zápisu do objektu blob v kontejneru.
Mezi podepsaná pole, která se budou skládat z adresy URL, patří:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedresource=c
signedpermissions=w
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Podpis se sestaví takto:
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=
Adresa URL požadavku určuje oprávnění k zápisu do kontejneru pictures
v určeném intervalu. Prostředek reprezentovaný adresou URL požadavku je objekt blob, ale sdílený přístupový podpis je zadaný v kontejneru. Je také možné ho zadat v samotném objektu 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.
S tímto podpisem se bude objekt blob put volat, pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Objekt blob určený požadavkem (/myaccount/pictures/photo.jpg) je v kontejneru zadaném jako podepsaný prostředek (/myaccount/pictures).
Příklad: Odstranění objektu blob pomocí sdíleného přístupového podpisu objektu blob
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis, který uděluje oprávnění k odstranění objektu blob a odstraní objekt blob.
Upozornění
Mějte na paměti, že sdílený přístupový podpis pro operaci DELETE by měl být distribuovaný uvážlivě, protože povolení klienta k odstranění dat může mít nezamýšlené důsledky.
Pole podepsaného podpisu, která budou obsahovat adresu URL, zahrnují:
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
Podpis se sestaví takto:
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=
Adresa URL požadavku určuje oprávnění k odstranění kontejneru pictures v určeném intervalu. Prostředek reprezentovaný adresou URL požadavku je objekt blob a pro tento objekt blob je zadaný sdílený přístupový podpis. Je také možné ho zadat v kontejneru objektu blob a udělit tak oprávnění k odstranění libovolného objektu blob v kontejneru.
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
S tímto podpisem se funkce Odstranit objekt blob zavolá, pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Objekt blob určený požadavkem (/myaccount/pictures/profile.jpg) odpovídá objektu blob zadanému jako podepsaný prostředek.
Příklady souborů
Tato část obsahuje příklady, které ukazují sdílené přístupové podpisy pro operace REST se soubory.
Příklad: Získání souboru pomocí sdíleného přístupového podpisu sdílené složky
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro přístup pro čtení sdílené složky.
Několik parametrů dotazu může umožnit klientovi, který vydává požadavek, přepsat hlavičky odpovědi pro tento sdílený přístupový podpis.
Hlavičky odpovědi a odpovídající parametry dotazu jsou následující:
Název hlavičky odpovědi | Odpovídající parametr dotazu SAS |
---|---|
Cache-Control |
rscc |
Content-Disposition |
RSCD |
Content-Encoding |
rsce |
Content-Language |
rscl |
Content-Type |
rsct |
Pole, která tvoří řetězec k podpisu, zahrnují:
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
Řetězec k podepsání se sestaví takto:
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=
Sdílený přístupový podpis určuje oprávnění ke čtení sdílené pictures
složky po určený interval. Prostředek reprezentovaný adresou URL požadavku je soubor, ale sdílený přístupový podpis je zadaný ve sdílené složce. Je také možné ho zadat v samotném souboru.
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
V případě klienta, který vytváří požadavek s tímto podpisem, se operace Získat soubor provede, pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Soubor určený požadavkem (/myaccount/pictures/profile.jpg) se nachází ve sdílené složce zadané jako podepsaný prostředek (/myaccount/pictures).
Zadáním rsct=binary
a rscd=file; attachment
u sdíleného přístupového podpisu se přepíší content-type
hlavičky a content-disposition
v odpovědi v uvedeném pořadí.
Úspěšná odpověď na požadavek učiněný pomocí tohoto sdíleného přístupového podpisu bude podobná následující:
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
Příklad: Nahrání souboru pomocí sdíleného přístupového podpisu ve sdílené složce
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro zápis souboru. V tomto příkladu vytvoříme podpis, který uděluje oprávnění k zápisu pro všechny soubory ve sdílené složce. Potom použijeme sdílený přístupový podpis k zápisu do souboru ve sdílené složce.
Pole podepsaného podpisu, která budou obsahovat adresu URL, zahrnují:
signedstart=2015-07-01T08:49Z
signedexpiry=2015-07-02T08:49Z
signedresource=c
signedpermissions=w
signature=Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21
Podpis se sestaví takto:
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=
Adresa URL požadavku určuje oprávnění k zápisu do kontejneru pictures
v určeném intervalu. Prostředek reprezentovaný adresou URL požadavku je objekt blob, ale sdílený přístupový podpis je zadaný v kontejneru. Je také možné ho zadat v samotném objektu 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.
S tímto podpisem bude volána funkce Vytvořit soubor , pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Soubor určený požadavkem (/myaccount/pictures/photo.jpg) je ve sdílené složce zadané jako podepsaný prostředek (/myaccount/pictures).
Příklad: Odstranění souboru pomocí sdíleného přístupového podpisu souboru
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis, který uděluje oprávnění k odstranění souboru, a pak pomocí sdíleného přístupového podpisu soubor odstranit.
Upozornění
Sdílený přístupový podpis pro operaci DELETE by měl být distribuovaný uvážlivě, protože povolení klienta k odstranění dat může mít nezamýšlené důsledky.
Pole podepsaného podpisu, která budou obsahovat adresu URL, zahrnují:
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
Podpis se sestaví takto:
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=
Adresa URL požadavku určuje oprávnění k odstranění sdílené složky obrázků v určeném intervalu. Prostředek reprezentovaný adresou URL požadavku je soubor a v daném souboru je zadaný sdílený přístupový podpis. Můžete ho také zadat ve sdílené složce souboru a udělit tak oprávnění k odstranění libovolného souboru ve sdílené složce.
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
S tímto podpisem bude funkce Odstranit soubor volána, pokud jsou splněna následující kritéria:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Soubor určený požadavkem (/myaccount/pictures/profile.jpg) odpovídá souboru zadanému jako podepsaný prostředek.
Příklady front
Tato část obsahuje příklady, které ukazují sdílené přístupové podpisy pro operace REST ve frontách. V těchto příkladech se operace queue service spustí pouze po splnění následujících kritérií:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Fronta určená požadavkem je stejná jako fronta autorizovaná sdíleným přístupovým podpisem.
Příklad: Načtení zpráv pomocí sdíleného přístupového podpisu
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro načítání zpráv z fronty. Tento podpis uděluje oprávnění ke zpracování zpráv pro frontu. Nakonec tento příklad používá sdílený přístupový podpis k načtení zprávy z fronty.
Prozkoumejte následující pole podepsaného podpisu, konstrukci řetězce k podpisu a konstrukci adresy URL, která volá operaci Get Messages po autorizaci požadavku:
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
Příklad: Přidání zprávy pomocí sdíleného přístupového podpisu
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro přidání zprávy do fronty. Tento podpis uděluje oprávnění k přidání pro frontu. Nakonec tento příklad použije podpis k přidání zprávy.
Prozkoumejte následující podepsaná pole podpisu, konstrukci řetězce StringToSign a konstrukci adresy URL, která volá operaci Put Message po autorizaci požadavku:
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>
Příklad: Náhled zpráv a Získání zprávy pomocí sdíleného přístupového podpisu
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro náhled na další zprávu ve frontě a načtení počtu zpráv ve frontě. Tento podpis uděluje oprávnění ke čtení fronty. Nakonec tento příklad používá sdílený přístupový podpis k náhledu zprávy a následnému přečtení metadat front, která zahrnují počet zpráv.
Prozkoumejte následující pole podepsaného podpisu, konstrukci řetězce k podpisu a konstrukci adresy URL, která volá operace Náhled zpráv a Získat metadata fronty :
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
Příklady tabulek
Tato část obsahuje příklady, které ukazují sdílené přístupové podpisy pro operace REST s tabulkami. V těchto příkladech se operace služby Table Service spustí pouze po splnění následujících kritérií:
Žádost je úspěšně autorizována.
Žádost se provede v časovém rámci určeném sdíleným přístupovým podpisem.
Požadavek neporušuje žádný termín přidružených uložených zásad přístupu.
Fronta určená požadavkem je stejná jako fronta autorizovaná sdíleným přístupovým podpisem.
Příklad: Dotazování tabulky pomocí sdíleného přístupového podpisu
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro dotazování entit v tabulce. Podpis uděluje oprávnění k dotazu pro konkrétní rozsah v tabulce. Nakonec tento příklad používá sdílený přístupový podpis k dotazování entit v rámci rozsahu.
Prozkoumejte následující podepsaná pole podpisu, konstrukci řetězce StringToSign a konstrukci adresy URL, která volá operaci Query Entities. Výsledky této operace dotazování entit budou obsahovat pouze entity v rozsahu definovaném pomocí startpk
, startrk
, endpk
a 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
Příklad: Aktualizace tabulky pomocí sdíleného přístupového podpisu
Následující příklad ukazuje, jak vytvořit sdílený přístupový podpis pro aktualizaci entit v tabulce. Podpis uděluje oprávnění k aktualizaci pro určitý rozsah entit. Nakonec tento příklad používá sdílený přístupový podpis k aktualizaci entity v rozsahu.
Prozkoumejte následující podepsaná pole podpisu, konstrukci řetězce StringToSign a konstrukci adresy URL, která volá operaci Aktualizovat entitu. Operace Aktualizovat entitu může aktualizovat pouze entity v rozsahu oddílů definovaném pomocí startpk
a 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>
Viz také
Delegování přístupu pomocí sdíleného přístupového podpisu
Vytvoření SAS služby