Vytvoření SAS služby

Sdílený přístupový podpis služby (SAS) deleguje přístup k prostředku jenom v jedné ze služeb úložiště: Azure Blob Storage, Azure Queue Storage, Azure Table Storage nebo Azure Files. Identifikátor URI sas na úrovni služby se skládá z identifikátoru URI prostředku, ke kterému bude SAS delegovat přístup, a následně z tokenu SAS.

Token SAS je řetězec dotazu, který obsahuje všechny informace potřebné k autorizaci požadavku. Token určuje prostředek, ke kterému může klient přistupovat, udělená oprávnění a časové období, během kterého je podpis platný.

SAS může také zadat podporovanou IP adresu nebo rozsah adres, ze kterých můžou pocházet požadavky, podporovaný protokol, se kterým je možné požadavek vytvořit, nebo volitelný identifikátor zásad přístupu, který je k požadavku přidružený.

Nakonec každý token SAS obsahuje podpis.

Upozornění

Sdílené přístupové podpisy jsou klíče, které udělují oprávnění k prostředkům úložiště, a měli byste je chránit stejně jako klíč účtu. Je důležité chránit SAS před škodlivým nebo neúmyslným použitím. Při distribuci sdíleného přístupového podpisu využijte diskrétnost a vytvořte plán pro odvolání ohroženého sas. Operace, které používají sdílené přístupové podpisy, by se měly provádět pouze přes připojení HTTPS a identifikátory URI SAS by se měly distribuovat pouze na zabezpečeném připojení, jako je https.

Autorizace SAS služby

Sas účtu můžete zabezpečit pomocí klíče účtu úložiště. Při vytváření SAS účtu musí klientská aplikace obsahovat klíč účtu.

Pokud chcete použít Microsoft Entra přihlašovací údaje k zabezpečení SAS pro kontejner nebo objekt blob, vytvořte SAS delegování uživatele.

Podpora služby SAS při přístupu vymezeném na adresář

Sas služby podporuje obor adresáře (sr=d), pokud je autorizační verze (sv) 2020-02-10 nebo novější a je povolený hierarchický obor názvů. Sémantika pro obor adresáře (sr=d) je podobná těm pro obor kontejneru (sr=c), s tím rozdílem, že přístup je omezený na adresář a všechny soubory a podadresáře v něm. Pokud sr=d je zadaný, vyžaduje se sdd také parametr dotazu.

Formát řetězce k podpisu pro autorizaci verze 2020-02-10 se nezmění.

Vytvoření SAS služby

Následující obrázek představuje části identifikátoru URI sdíleného přístupového podpisu. Požadované části se zobrazí oranžově. Pole, která tvoří token SAS, jsou popsána v následujících částech.

Diagram parametrů prvků adresy URL sdíleného přístupového podpisu

Následující části popisují, jak zadat parametry, které tvoří token SAS služby.

Zadejte pole.signedVersion

Pole signedVersion (sv) obsahuje verzi služby sdíleného přístupového podpisu. Tato hodnota určuje verzi autorizace sdíleného klíče, kterou tento sdílený přístupový podpis používá (v signature poli). Hodnota také určuje verzi služby pro požadavky, které jsou provedeny s tímto sdíleným přístupovým podpisem.

Informace o tom, která verze se používá při spouštění požadavků prostřednictvím sdíleného přístupového podpisu, najdete v tématu Správa verzí pro služby Azure Storage.

Informace o tom, jak tento parametr ovlivňuje autorizaci požadavků provedených pomocí sdíleného přístupového podpisu, najdete v tématu Delegování přístupu pomocí sdíleného přístupového podpisu.

Název pole Parametr dotazu Popis
signedVersion sv Povinná hodnota. Podporováno ve verzi 2012-02-12 a novější. Verze služby úložiště, která se má použít k autorizaci a zpracování požadavků, které vytvoříte pomocí tohoto sdíleného přístupového podpisu. Další informace najdete v tématu Správa verzí pro služby Azure Storage.

Určení verze starší verze žádosti SAS

Ve starších scénářích, kdy signedVersion se nepoužívá, použije Blob Storage pravidla pro určení verze. Další informace o těchto pravidlech najdete v tématu Správa verzí pro služby Azure Storage.

Důležité

Klientský software může zaznamenat neočekávané chování protokolu, když použijete identifikátor URI sdíleného přístupového podpisu, který používá verzi služby úložiště, která je novější než klientský software. Kód, který vytváří identifikátory URI sdíleného přístupového podpisu, by se měl spoléhat na verze, kterým rozumí klientský software, který vytváří požadavky služby úložiště.

Zadejte podepsaný prostředek (jenom Blob Storage).

signedResource Požadované pole (sr) určuje, které prostředky jsou přístupné prostřednictvím sdíleného přístupového podpisu. Následující tabulka popisuje, jak odkazovat na prostředek objektu blob nebo kontejneru v tokenu SAS.

Prostředek Hodnota parametru Podporované verze Description
Objekt blob b Vše Uděluje přístup k obsahu a metadatům objektu blob.
Verze objektu blob Bv 2018-11-09 a novější Udělí přístup k obsahu a metadatům verze objektu blob, ale ne k základnímu objektu blob.
Snímek objektu blob Bs 2018-11-09 a novější Udělí přístup k obsahu a metadatům snímku objektu blob, ale ne k základnímu objektu blob.
Kontejner c Vše Udělí přístup k obsahu a metadatům libovolného objektu blob v kontejneru a k seznamu objektů blob v kontejneru.
Directory d 2020-02-10 a novější Udělí přístup k obsahu a metadatům libovolného objektu blob v adresáři a k seznamu objektů blob v adresáři v účtu úložiště s povoleným hierarchickým oborem názvů. Pokud je pro signedResource pole zadaný adresář, signedDirectoryDepth vyžaduje se také parametr (sdd). Adresář je vždy vnořený v kontejneru.

Zadejte podepsaný prostředek (Azure Files).

SAS se podporuje pro Azure Files verze 2015-02-21 a novější.

Pole signedResource určuje, které prostředky jsou přístupné prostřednictvím sdíleného přístupového podpisu. Následující tabulka popisuje, jak odkazovat na soubor nebo prostředek sdílené složky v identifikátoru URI.

Název pole Parametr dotazu Popis
signedResource sr Povinná hodnota.

Určete f , jestli je sdíleným prostředkem soubor. Tím udělíte přístup k obsahu a metadatům souboru.

Určete s , jestli je sdíleným prostředkem sdílená složka. Tím se udělí přístup k obsahu a metadatům libovolného souboru ve sdílené složce a k seznamu adresářů a souborů ve sdílené složce.

Určení parametrů dotazu pro přepsání hlaviček odpovědi (jenom Blob Storage a Azure Files)

Pokud chcete definovat hodnoty pro určité hlavičky odpovědi, které se mají vrátit při použití sdíleného přístupového podpisu v požadavku, můžete v parametrech dotazu zadat hlavičky odpovědi. Tato funkce se podporuje od verze 2013-08-15 pro Blob Storage a verze 2015-02-21 pro Azure Files. Sdílené přístupové podpisy, které používají tuto funkci, musí obsahovat sv parametr nastavený na 2013-08-15 nebo novější pro službu Blob Storage nebo na 2015-02-21 hodnotu nebo novější pro Azure Files.

Hlavičky odpovědi a odpovídající parametry dotazu jsou uvedené v následující tabulce:

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

Pokud například zadáte rsct=binary parametr dotazu u sdíleného přístupového podpisu vytvořeného ve verzi 2013-08-15 nebo novější, hlavička Content-Type odpovědi se nastaví na binary. Tato hodnota přepíše hodnotu hlavičky Content-Type uloženou pro objekt blob pro požadavek, který používá pouze tento sdílený přístupový podpis.

Pokud vytvoříte sdílený přístupový podpis, který určuje hlavičky odpovědi jako parametry dotazu, musíte je zahrnout do řetězce k podpisu, který se používá k vytvoření řetězce podpisu. Další informace najdete v části "Vytvoření řetězce podpisu" dále v tomto článku. Další příklady najdete v tématu Příklady SAS služby.

Zadejte název tabulky (jenom Table Storage).

Pole tableName určuje název tabulky, která se má sdílet.

Název pole Parametr dotazu Popis
tableName tn Povinná hodnota. Název tabulky, která se má sdílet.

Zadání zásad přístupu

Část identifikátoru URI zásad přístupu určuje časové období, během kterého je sdílený přístupový podpis platný, a oprávnění, která se mají uživateli udělit. Části identifikátoru URI, které tvoří zásady přístupu, jsou popsané v následující tabulce:

Název pole Parametr dotazu Popis
signedStart st Nepovinný parametr. Čas, kdy sdílený přístupový podpis začne platit, vyjádřený v jednom z přijatých formátů ISO 8601 UTC. Pokud tento parametr vynecháte, použije se jako počáteční čas aktuální čas UTC.

Ve verzích, které jsou starší než 2012-02-12, doba trvání mezi signedStart a signedExpiry nesmí překročit jednu hodinu, pokud se nepoužijí zásady kontejneru. Další informace o akceptovaných formátech UTC najdete v tématu Formátování hodnot data a času.
signedExpiry se Povinná hodnota. Čas, kdy sdílený přístupový podpis přestane být platný, vyjádřený v jednom z přijatých formátů ISO 8601 UTC. Toto pole musíte vynechat, pokud bylo zadáno v přidružených uložených zásadách přístupu. Další informace o akceptovaných formátech UTC najdete v tématu Formátování hodnot data a času.
signedPermissions1 sp Povinná hodnota. Oprávnění, která jsou přidružena ke sdílenému přístupovém podpisu. Uživatel je omezen na operace, které jsou povoleny oprávněními. Toto pole musíte vynechat, pokud bylo zadáno v přidružených uložených zásadách přístupu.
startPk2

startRk2
spk

srk
Pouze table Storage.

Volitelné, ale startPk musí doprovázet startRk. Minimální klíč oddílu a řádku, které jsou přístupné pomocí tohoto sdíleného přístupového podpisu. Klíčové hodnoty jsou inkluzivní. Pokud je vynecháte, entity tabulky nemají dolní mez, ke které je možné přistupovat.
endPk2

endRk2
epk

erk
Pouze table Storage.

Volitelné, ale endPk musí doprovázet endRk. Maximální počet klíčů oddílů a řádků, které jsou přístupné pomocí tohoto sdíleného přístupového podpisu. Klíčové hodnoty jsou inkluzivní. Pokud je vynecháte, není u entit tabulky žádná horní mez, ke které by bylo možné přistupovat.

1 Pole signedPermissions je povinné u identifikátoru URI, pokud není zadané jako součást uložených zásad přístupu.
2 Pole startPk, startRk, endPka endRk je možné zadat pouze u prostředků služby Table Storage.

Určení oprávnění

Oprávnění zadaná pro signedPermissions pole (sp) v tokenu SAS označují, které operace může klient s prostředkem provádět.

Pokud chcete klientovi povolit provádění více operací se stejným sas, můžete oprávnění kombinovat. Při vytváření SAS musíte zahrnout oprávnění v následujícím pořadí:

racwdxltmeop

Příklady platných nastavení oprávnění pro kontejner: rw, rd, rl, wd, wla rl. Mezi příklady neplatných nastavení patří wr, lrdr, a dw. Označení oprávnění nelze zadat více než jednou.

Sas služby nemůže udělit přístup k určitým operacím:

  • Kontejnery, fronty a tabulky není možné vytvářet, odstraňovat ani vypisovat.
  • Metadata a vlastnosti kontejneru se nedají číst ani zapisovat.
  • Fronty se nedají vymazat a jejich metadata se nedají zapsat.
  • Kontejnery se nedají zapůjčením.

K vytvoření SAS, který uděluje přístup k těmto operacím, použijte SAS účtu. Další informace najdete v tématu Vytvoření SAS účtu.

Důležité

Sdílené přístupové podpisy jsou klíče, které udělují oprávnění k prostředkům úložiště, a měli byste je chránit stejně jako klíč účtu. Provádějte operace, které používají sdílené přístupové podpisy pouze přes připojení HTTPS, a distribuujte identifikátory URI sdíleného přístupového podpisu pouze na zabezpečeném připojení, jako je například HTTPS.

Oprávnění podporovaná pro jednotlivé typy prostředků jsou popsána v následujících částech.

Oprávnění pro adresář, kontejner nebo objekt blob

Oprávnění podporovaná pro jednotlivé typy prostředků jsou popsána v následující tabulce:

Oprávnění Symbol identifikátoru URI Prostředek Podpora verzí Povolené operace
Read r Kontejner
Directory
Objekt blob
Vše Přečtěte si obsah, seznam blokovaných objektů, vlastnosti a metadata libovolného objektu blob v kontejneru nebo adresáři. Jako zdroj operace kopírování použijte objekt blob.
Přidání pro Kontejner
Directory
Objekt blob
Vše Přidání bloku do doplňovacího objektu blob
Vytvořit c Kontejner
Directory
Objekt blob
Vše Napište nový objekt blob, vytvořte snímek objektu blob nebo zkopírujte objekt blob do nového objektu blob.
Write w Kontejner
Directory
Objekt blob
Vše Vytváření nebo zápis obsahu, vlastností, metadat nebo seznamu blokovaných Vytvoření snímku nebo zapůjčení objektu blob Změňte velikost objektu blob (jenom objekt blob stránky). Použijte objekt blob jako cíl operace kopírování.
Odstranit d Kontejner
Directory
Objekt blob
Vše Odstranění objektu blob Pro verzi 2017-07-29 a novější umožňuje oprávnění k odstranění také přerušení zapůjčení objektu blob. Další informace najdete v tématu Operace Zapůjčení objektu blob .
Odstranit verzi x Kontejner
Objekt blob
12. 12. 2019 a novější Odstranění verze objektu blob
Trvalé odstranění y Objekt blob 2020-02-10 a novější Trvale odstraníte snímek nebo verzi objektu blob.
Seznam l Kontejner
Directory
Vše Výpis objektů blob nerekurzivně
Značky t Objekt blob 12. 12. 2019 a novější Čtení nebo zápis značek v objektu blob
Vyhledávání f Kontejner 12. 12. 2019 a novější Vyhledejte objekty blob se značkami indexu.
Move m Kontejner
Directory
Objekt blob
2020-02-10 a novější Přesuňte objekt blob nebo adresář a jeho obsah do nového umístění. Tuto operaci můžete volitelně omezit na vlastníka podřízeného objektu blob, adresáře nebo nadřazeného adresáře, pokud saoid je parametr zahrnutý v tokenu SAS a bit sticky je nastavený v nadřazené adresáři.
Spuštěním e Kontejner
Directory
Objekt blob
2020-02-10 a novější Získejte systémové vlastnosti a pokud je pro účet úložiště povolený hierarchický obor názvů, získejte seznam ACL POSIX objektu blob. Pokud je povolený hierarchický obor názvů a volající je vlastníkem objektu blob, uděluje toto oprávnění možnost nastavit vlastnící skupinu, oprávnění POSIX a seznam ACL POSIX objektu blob. neumožňuje volajícímu číst metadata definovaná uživatelem.
Vlastnictví o Kontejner
Directory
Objekt blob
2020-02-10 a novější Pokud je povolen hierarchický obor názvů, toto oprávnění umožňuje volajícímu nastavit vlastníka nebo vlastnící skupinu nebo jednat jako vlastník při přejmenování nebo odstranění adresáře nebo objektu blob v adresáři, který má nastavený bit sticky.
Oprávnění p Kontejner
Directory
Objekt blob
2020-02-10 a novější Pokud je povolený hierarchický obor názvů, umožňuje toto oprávnění volajícímu nastavit oprávnění a seznamy ACL poSIX pro adresáře a objekty blob.
Nastavení zásad neměnnosti Mohu Kontejner
Objekt blob
12. 6. 2020 a novější Nastavení nebo odstranění zásad neměnnosti nebo blokování z právních důvodů u objektu blob

Oprávnění k souboru

Oprávnění Symbol identifikátoru URI Povolené operace
Read r Přečtěte si obsah, vlastnosti a metadata. Soubor použijte jako zdroj operace kopírování.
Vytvořit c Vytvořte nový soubor nebo zkopírujte soubor do nového souboru.
Write w Vytváření nebo zápis obsahu, vlastností a metadat. Změňte velikost souboru. Soubor použijte jako cíl operace kopírování.
Odstranit d Odstraňte soubor.

Oprávnění ke sdílené složce

Oprávnění Symbol identifikátoru URI Povolené operace
Read r Přečtěte si obsah, vlastnosti nebo metadata libovolného souboru ve sdílené složce. Jako zdroj operace kopírování použijte libovolný soubor ve sdílené složce.
Vytvořit c Vytvořte ve sdílené složce nový soubor nebo zkopírujte soubor do nového souboru ve sdílené složce.
Write w Pro libovolný soubor ve sdílené složce vytvořte nebo zapište obsah, vlastnosti nebo metadata. Změňte velikost souboru. Soubor použijte jako cíl operace kopírování. Poznámka: Pomocí SAS služby nemůžete udělit oprávnění ke čtení nebo zápisu vlastností nebo metadat sdílených složek. Místo toho použijte SAS účtu.
Odstranit d Odstraňte všechny soubory ve sdílené složce. Poznámka: Pomocí sdíleného přístupového podpisu služby nemůžete udělit oprávnění k odstranění sdílené složky. Místo toho použijte SAS účtu.
Seznam l Vypíše soubory a adresáře ve sdílené složce.

Oprávnění pro frontu

Oprávnění Symbol identifikátoru URI Povolené operace
Read r Čtení metadat a vlastností, včetně počtu zpráv Náhled na zprávy.
Přidání pro Přidejte zprávy do fronty.
Aktualizace u Aktualizujte zprávy ve frontě. Poznámka: Použijte oprávnění Proces s aktualizací, abyste nejprve získali zprávu, kterou chcete aktualizovat.
Proces p Získání a odstranění zpráv z fronty

Oprávnění pro tabulku

Oprávnění Symbol identifikátoru URI Povolené operace
Dotaz r Získání entit a dotazování entit
Přidání pro Přidejte entity. Poznámka: Pro operace upsert se vyžadují oprávnění přidat a aktualizovat.
Aktualizace u Aktualizujte entity. Poznámka: Pro operace upsert se vyžadují oprávnění přidat a aktualizovat.
Odstranit d Odstraňte entity.

Zadání IP adresy nebo rozsahu IP adres

Od verze 2015-04-05 určuje pole volitelné signedIp (sip) veřejnou IP adresu nebo rozsah veřejných IP adres, ze kterých se mají požadavky přijímat. Pokud IP adresa, ze které požadavek pochází, neodpovídá IP adrese nebo rozsahu adres zadaným v tokenu SAS, požadavek se neautorizuje. Podporují se jenom adresy IPv4.

Když zadáváte rozsah IP adres, mějte na paměti, že rozsah je inkluzivní. Například zadáním sip=168.1.5.65 nebo sip=168.1.5.60-168.1.5.70 v SAS omezíte požadavek na tyto IP adresy.

Následující tabulka popisuje, jestli se má zahrnout signedIp pole do tokenu SAS pro zadaný scénář v závislosti na prostředí klienta a umístění účtu úložiště.

Klientské prostředí Umístění účtu úložiště Doporučení
Klient spuštěný v Azure Ve stejné oblasti jako klient Sas, který je v tomto scénáři poskytnutý klientovi, by neměl obsahovat odchozí IP adresu pole signedIp . Požadavky vytvořené ze stejné oblasti, které používají SAS se zadanou odchozí IP adresou, selžou.

Místo toho použijte virtuální síť Azure ke správě omezení zabezpečení sítě. Požadavky na službu Azure Storage ze stejné oblasti se vždy provádí přes privátní IP adresu. Další informace najdete v tématu Konfigurace virtuálních sítí a bran firewall Azure Storage.
Klient spuštěný v Azure V jiné oblasti než klient Sas, který je v tomto scénáři poskytnutý klientovi, může obsahovat veřejnou IP adresu nebo rozsah adres pro dané signedIp pole. Požadavek vytvořený pomocí sdíleného přístupového podpisu musí pocházet ze zadané IP adresy nebo rozsahu adres.
Klient spuštěný místně nebo v jiném cloudovém prostředí V libovolné oblasti Azure Sas, který je v tomto scénáři poskytnutý klientovi, může obsahovat veřejnou IP adresu nebo rozsah adres pro dané signedIp pole. Požadavek vytvořený pomocí sdíleného přístupového podpisu musí pocházet ze zadané IP adresy nebo rozsahu adres.

Pokud požadavek prochází přes proxy server nebo bránu, zadejte do signedIp pole veřejnou odchozí IP adresu tohoto proxy serveru nebo brány.

Zadání protokolu HTTP

Od verze 2015-04-05 určuje volitelné signedProtocol pole (spr) protokol, který je povolený pro požadavek provedený pomocí SAS. Možné hodnoty jsou HTTPS a HTTP (https,http) nebo pouze HTTPS (https). Výchozí hodnota je https,http. Upozorňujeme, že pouze HTTP není povolená hodnota.

Určení rozsahů přístupu k tabulce

Pole startPk, startRk, endPka endRk definují rozsah entit tabulky, které jsou přidružené ke sdílenému přístupovém podpisu. Dotazy tabulky vrací pouze výsledky, které jsou v daném rozsahu, a pokusy o použití sdíleného přístupového podpisu k přidání, aktualizaci nebo odstranění entit mimo tento rozsah selžou.

Pokud startPk se rovná hodnotě endPk, sdílený přístupový podpis autorizuje přístup k entitám pouze v jednom oddílu tabulky.

Pokud startPk se endPk rovná a startRk rovná endRkse , může sdílený přístupový podpis přistupovat pouze k jedné entitě v jednom oddílu.

Informace o tom, jak tato pole omezují přístup k entitám v tabulce, najdete v následující tabulce:

Pole jsou k dispozici Rozsah omezení
startPk partitionKey >= startPk
endPk partitionKey <= endPk
startPk, startRk (partitionKey >startPk) || (partitionKey == startPk && rowKey >= startRk)
endPk, endRk (partitionKey <endPk) || (partitionKey == endPk && rowKey <= endRk)

Určení hloubky adresáře

Pokud je povolen hierarchický obor názvů a signedResource pole určuje adresář (sr=d), musíte také zadat signedDirectoryDepth pole (sdd), které označuje počet podadresářů v kořenovém adresáři. Hodnota sdd pole musí být nezáporné celé číslo.

Například kořenový adresář https://{account}.blob.core.windows.net/{container}/ má hloubku 0. Každý podadresář v kořenovém adresáři přidá do hloubky o 1. https://{account}.blob.core.windows.net/{container}/d1/d2 Adresář má hloubku 2.

Toto pole je podporováno ve verzi 2020-02-10 nebo novější.

Zadání podepsaného identifikátoru

Když zadáte signedIdentifier pole v identifikátoru URI, provážete zadaný sdílený přístupový podpis s odpovídajícími uloženými zásadami přístupu. Uložené zásady přístupu poskytují další míru kontroly nad jedním nebo několika sdílenými přístupovým podpisy, včetně možnosti v případě potřeby podpis odvolat. Každý kontejner, fronta, tabulka nebo sdílená složka může mít až pět uložených zásad přístupu.

Následující tabulka popisuje, jak odkazovat na podepsaný identifikátor v identifikátoru URI:

Název pole Parametr dotazu Popis
signedIdentifier si Nepovinný parametr. Jedinečná hodnota až 64 znaků, která koreluje se zásadami přístupu zadanými pro kontejner, frontu nebo tabulku.

Uložené zásady přístupu obsahují podepsaný identifikátor, tedy hodnotu až 64 znaků, která je v rámci prostředku jedinečná. Můžete zadat hodnotu tohoto podepsaného identifikátoru signedidentifier pro pole v identifikátoru URI sdíleného přístupového podpisu. Když v identifikátoru URI zadáte podepsaný identifikátor, přidružíte podpis k uloženým zásadám přístupu. Pokud chcete vytvořit zásady přístupu na úrovni kontejneru pomocí rozhraní REST API, přečtěte si téma Delegování přístupu pomocí sdíleného přístupového podpisu.

Určení oboru šifrování

Pomocí signedEncryptionScope pole v identifikátoru URI můžete určit obor šifrování, který může klientská aplikace používat. Při nahrávání objektů blob (PUT) s tokenem SAS vynucuje šifrování na straně serveru se zadaným oborem šifrování. Operace GET a HEAD nebudou omezeny a provedeny jako dříve.

Následující tabulka popisuje, jak odkazovat na podepsaný obor šifrování u identifikátoru URI:

Název pole Parametr dotazu Popis
signedEncryptionScope ses Nepovinný parametr. Určuje obor šifrování, který se má použít k zašifrování obsahu požadavku.

Toto pole je podporováno ve verzi 2020-12-06 nebo novější. Pokud přidáte před podporovanou ses verzi, vrátí služba kód odpovědi na chybu 403 (Zakázáno).

Pokud nastavíte výchozí obor šifrování pro kontejner nebo systém souborů, ses parametr dotazu respektuje zásady šifrování kontejneru. Pokud dojde k neshodě mezi parametrem ses dotazu a x-ms-default-encryption-scope hlavičkou a x-ms-deny-encryption-scope-override hlavička je nastavená na true, vrátí služba kód odpovědi na chybu 403 (Zakázáno).

Když v požadavku PUT zadáte x-ms-encryption-scope hlavičku ses a parametr dotazu, vrátí služba kód odpovědi na chybu 400 (Chybný požadavek), pokud dojde k neshodě.

Zadání podpisu

Část podpisu identifikátoru URI použijete k autorizaci požadavku vytvořeného se sdíleným přístupovým podpisem. Azure Storage používá k autorizaci SAS služby schéma autorizace sdíleného klíče.

Následující tabulka popisuje, jak zadat podpis v identifikátoru URI:

Název pole Parametr dotazu Popis
signature sig Řetězec typu string-to-sign je jedinečný řetězec, který je vytvořený z polí a který se musí ověřit, aby bylo možné žádost autorizovat. Podpis je kód ověřování zpráv založený na hodnotě hash (HMAC), který vypočítáte přes řetězec k podepsání a klíč pomocí algoritmu SHA256 a pak ho kódujete pomocí kódování Base64.

Vytvoření řetězce podpisu

Pokud chcete vytvořit řetězec podpisu sdíleného přístupového podpisu, nejprve z polí, která tvoří požadavek, vytvořte řetězec k podpisu, zakódujte ho jako UTF-8 a pak podpis vypočítáte pomocí algoritmu HMAC-SHA256. Pole, která jsou součástí řetězce k podpisu, musí být dekódovaná adresa URL.

Verze z 6. 12. 2020 a novější

Verze 2020-12-06 přidává podporu pro pole podepsaného oboru šifrování. K vytvoření řetězce k podepsání prostředků služby Blob Storage použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n" +
               signedSnapshotTime + "\n" +
               signedEncryptionScope + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
Verze z 9. 11. 2018 a novější

Verze 2018-11-09 přidává podporu pro pole času podepsaného prostředku a podepsaného snímku objektu blob. Tato pole musí být zahrnuta v řetězci k sign. K vytvoření řetězce k podepsání prostředků služby Blob Storage použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               signedResource + "\n"
               signedSnapshotTime + "\n" +
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  
Verze 2015-04-05 a novější

Verze 2015-04-05 přidává podporu pro pole podepsané IP adresy a podepsaného protokolu. Tato pole musí být zahrnuta v řetězci k sign. K vytvoření řetězce k podpisu pro službu Blob Storage nebo Azure Files prostředků použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

K vytvoření řetězce k podepsání prostředků služby Table Storage použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion + "\n" +  
               startingPartitionKey + "\n"  
               startingRowKey + "\n"  
               endingPartitionKey + "\n"  
               endingRowKey  
  

K vytvoření řetězce k podepsání pro prostředky Queue Storage použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedIP + "\n" +  
               signedProtocol + "\n" +  
               signedVersion  
  
Verze 2013-08-15 až 2015-02-21

K vytvoření řetězce k podpisu pro službu Blob Storage nebo Azure Files prostředků pomocí verze 2013-08-15 až 2015-02-21 použijte následující formát. Pro Azure Files se SAS podporuje od verze 2015-02-21.

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               rscc + "\n" +  
               rscd + "\n" +  
               rsce + "\n" +  
               rscl + "\n" +  
               rsct  

K vytvoření řetězce k podepsání tabulky použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion + "\n" +  
               startPk + "\n" +  
               startRk + "\n" +  
               endPk + "\n" +  
               endRk  
  

K vytvoření řetězce k podepsání pro frontu použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion 
Verze 2012-02-12

K vytvoření řetězce k sign pro prostředky služby Blob Storage pro verzi 2012-02-12 použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier + "\n" +  
               signedVersion  
Verze starší než 2012-02-12

K vytvoření řetězce k sign pro prostředky služby Blob Storage pro verze starší než 2012-02-12 použijte následující formát:

StringToSign = signedPermissions + "\n" +  
               signedStart + "\n" +  
               signedExpiry + "\n" +  
               canonicalizedResource + "\n" +  
               signedIdentifier  
  

Při vytváření řetězce, který má být podepsán, mějte na paměti následující:

  • Pokud je pole volitelné a není zadané jako součást požadavku, zadejte pro toto pole prázdný řetězec. Nezapomeňte za prázdný řetězec přidat znak nového řádku (\n).

  • Řetězec k podpisu pro tabulku musí obsahovat další parametry, i když se jedná o prázdné řetězce.

  • Část signedpermission řetězce musí obsahovat označení oprávnění v pevném pořadí, které je specifické pro jednotlivé typy prostředků. Jakákoli kombinace těchto oprávnění je přijatelná, ale pořadí písmen oprávnění musí odpovídat pořadí v následující tabulce.

    Typ prostředku Pořadí oprávnění
    Objekt blob racwd
    Kontejner racwdl
    Fronta raup
    File Rcwd
    Sdílení rcwdl
    Tabulka raud

    Mezi příklady platných nastavení oprávnění pro kontejner patří rw, , rdrl, wd, wla rl. Mezi příklady neplatných nastavení patří wr, lrdr, a dw. Zadání označení oprávnění více než jednou není povolené.

  • Pokud požadavek přidružujete k uloženým zásadám přístupu, zadejte hodnotu signedIdentifier pro část řetězce.

  • Sdílený přístupový podpis, který určuje verzi služby úložiště starší než 2012-02-12, může sdílet jenom objekt blob nebo kontejner a musí před ním vynechat signedVersion znak nového řádku.

  • Část canonicalizedResource řetězce je kanonickou cestou k podepsanému prostředku. Musí obsahovat název služby (Blob Storage, Table Storage, Queue Storage nebo Azure Files) pro verzi 2015-02-21 nebo novější, název účtu úložiště a název prostředku a musí být dekódovaná adresa URL. Názvy objektů blob musí obsahovat kontejner objektu blob. Názvy tabulek musí být malé.

Kanonický řetězec prostředku pro kontejner, frontu, tabulku nebo sdílenou složku musí vynechat koncové lomítko (/) pro SAS, který poskytuje přístup k danému objektu.

Následující příklady ukazují, jak vytvořit canonicalizedResource část řetězce v závislosti na typu prostředku.

Containers

Verze 2015-02-21 a novější:

URL = https://myaccount.blob.core.windows.net/music  
canonicalizedResource = "/blob/myaccount/music"  

Verze starší než 21. 2. 2015:

URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/myaccount/music"  

Objekty blob

Verze 2015-02-21 a novější:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3  
canonicalizedResource = "/blob/myaccount/music/intro.mp3"  

Verze starší než 21. 2. 2015:

URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/myaccount/music/intro.mp3"  

Sdílené složky

URL = https://myaccount.file.core.windows.net/music
canonicalizedResource = "/file/myaccount/music"  

Soubory

URL = https://myaccount.file.core.windows.net/music/intro.mp3
canonicalizedResource = "/file/myaccount/music/intro.mp3"  

Fronty

Verze 2015-02-21 a novější:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/queue/myaccount/thumbnails"  

Verze starší než 21. 2. 2015:

URL = https://myaccount.queue.core.windows.net/thumbnails  
canonicalizedResource = "/myaccount/thumbnails"  

Tabulky

Pokud je podepsaným prostředkem tabulka, ujistěte se, že název tabulky je v kanonickém formátu malými písmeny.

Verze 2015-02-21 a novější:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/table/myaccount/employees"  

Verze starší než 21. 2. 2015:

URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')  
canonicalizedResource = "/myaccount/employees"  

Životnost a odvolání sdíleného přístupového podpisu

Sdílené přístupové podpisy udělují uživatelům přístupová práva k prostředkům účtu úložiště. Při plánování použití sdíleného přístupového podpisu se zamyslete nad životností sdíleného přístupového podpisu a nad tím, jestli vaše aplikace nemusí za určitých okolností potřebovat odvolat přístupová práva.

Ad hoc SAS versus uložené zásady přístupu

Sas služby může mít jednu ze dvou forem:

  • Ad hoc SAS: Při vytváření ad hoc sdíleného přístupového podpisu se v identifikátoru URI SAS zadává počáteční čas, čas vypršení platnosti a oprávnění sas (nebo implikuje, pokud je čas spuštění vynechán). Ad hoc sdílený přístupový podpis může být libovolný typ sdíleného přístupového podpisu.

    Životnost ad hoc sdíleného přístupového podpisu můžete spravovat pomocí signedExpiry pole . Pokud chcete klientovi udělit přístup k prostředku i po uplynutí doby vypršení platnosti, musíte vystavit nový podpis. Doporučujeme, abyste životnost sdíleného přístupového podpisu udržovali krátkou. Před verzí 2012-02-12 sdílený přístupový podpis nepřidružovaný k uloženým zásadám přístupu nemohl mít aktivní období, které přesahuje jednu hodinu.

  • SAS s uloženými zásadami přístupu: Uložené zásady přístupu jsou definované pro kontejner prostředků, kterým může být kontejner objektů blob, tabulka, fronta nebo sdílená složka. Uložené zásady přístupu můžete použít ke správě omezení pro jeden nebo více sdílených přístupových podpisů. Když sas přidružíte k uložené zásadě přístupu, zdědí SAS omezení (tj. čas spuštění, čas vypršení platnosti a oprávnění), která jsou definovaná pro uložené zásady přístupu.

    Uložené zásady přístupu jsou reprezentované polem signedIdentifier v identifikátoru URI. Uložené zásady přístupu poskytují další míru kontroly nad jedním nebo několika sdílenými přístupovým podpisy, včetně možnosti v případě potřeby podpis odvolat.

Odvolání sdíleného přístupového podpisu (SAS)

Vzhledem k tomu, že identifikátor URI SAS je adresa URL, může ho použít každý, kdo ho získá, bez ohledu na to, kdo ho původně vytvořil. Pokud se sdílený přístupový podpis publikuje veřejně, může ho používat kdokoli na světě. Sas uděluje přístup k prostředkům každému, kdo je vlastní, dokud se nestane jedna ze čtyř věcí:

  • Dojde k dosažení času vypršení platnosti zadaného u ad hoc sdíleného přístupového podpisu.

  • Doba vypršení platnosti zadaná u uložených zásad přístupu, na které odkazuje sdílený přístupový podpis, se dosáhne, pokud se odkazuje na uložené zásady přístupu a zásada přístupu určuje čas vypršení platnosti.

    Čas vypršení platnosti je možné dosáhnout buď z důvodu uplynulého intervalu, nebo proto, že jste upravili uložené zásady přístupu tak, aby v minulosti měly čas vypršení platnosti, což je jeden ze způsobů, jak sdílený přístupový podpis odvolat.

  • Uložené zásady přístupu, na které sdílený přístupový podpis odkazuje, se odstraní, což sdílený přístupový podpis odvolá. Pokud Azure Storage nemůže najít uložené zásady přístupu zadané ve sdíleném přístupovém podpisu, klient nebude mít přístup k prostředku označenému identifikátorem URI.

    Pokud znovu vytvoříte uložené zásady přístupu s přesně stejným názvem jako odstraněné zásady, budou všechny existující tokeny SAS znovu platné podle oprávnění přidružených k této uložené zásadě přístupu. Předpokládá se, že neuplynula doba vypršení platnosti sas. Pokud máte v úmyslu sdílený přístupový podpis odvolat, nezapomeňte při opětovném vytváření zásad přístupu s časem vypršení platnosti v budoucnu použít jiný název.

  • Klíč účtu použitý k vytvoření sdíleného přístupového podpisu se vygeneruje znovu. Opětovné vygenerování klíče účtu způsobí, že všechny komponenty aplikace, které tento klíč používají, se nepodaří autorizovat, dokud nebudou aktualizovány tak, aby používaly jiný platný klíč účtu nebo nově vygenerovaný klíč účtu. Opětovné vygenerování klíče účtu je jediný způsob, jak okamžitě odvolat ad hoc sdílený přístupový podpis.

Důležité

Identifikátor URI sdíleného přístupového podpisu je přidružený ke klíči účtu, který se používá k vytvoření podpisu, a přidruženým uloženým zásadám přístupu ( pokud jsou k dispozici). Pokud nejsou zadané žádné uložené zásady přístupu, je jediným způsobem, jak odvolat sdílený přístupový podpis, změna klíče účtu.

Jako osvědčený postup doporučujeme použít uložené zásady přístupu se sdíleným přístupovým podpisem služby. Pokud se rozhodnete nepoužívat uložené zásady přístupu, nezapomeňte zachovat krátkou dobu platnosti ad hoc sdíleného přístupového podpisu. Další informace o přidružení SAS služby k uloženým zásadám přístupu najdete v tématu Definování uložených zásad přístupu.

Příklad SAS služby

Následující příklad ukazuje identifikátor URI objektu blob s připojeným tokenem SAS služby. Token SAS služby poskytuje objektu blob oprávnění ke čtení a zápisu.

https://myaccount.blob.core.windows.net/sascontainer/blob1.txt?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&sip=168.1.5.60-168.1.5.70&spr=https&sv=2022-11-02&sr=b&sig=<signature>

Jednotlivé části identifikátoru URI jsou popsané v následující tabulce:

Name Část SAS Description
Identifikátor URI prostředku https://myaccount.blob.core.windows.net/sascontainer/blob1.txt Adresa objektu blob. Důrazně doporučujeme používat protokol HTTPS.
Oddělovač ? Oddělovač, který předchází řetězci dotazu. Oddělovač není součástí tokenu SAS.
Oprávnění sp=rw Mezi oprávnění udělená SAS patří čtení (r) a zápis (w).
Čas spuštění st=2023-05-24T01:13:55Z Zadané v čase UTC. Pokud chcete, aby sdílený přístupový podpis byl platný okamžitě, vynechte počáteční čas.
Čas vypršení platnosti se=2023-05-24T09:13:55Z Zadané v čase UTC.
Rozsah IP adres sip=168.1.5.60-168.1.5.70 Rozsah IP adres, ze kterých bude žádost přijata.
Protokol spr=https Povolené jsou jenom požadavky, které používají PROTOKOL HTTPS.
Verze služby Azure Storage sv=2023-05-24 Pro Azure Storage verze 2012-02-12 a novější označuje tento parametr verzi, která se má použít.
Prostředek sr=b Prostředek je objekt blob.
Podpis sig=<signature> Slouží k autorizaci přístupu k objektu blob. Podpis je HMAC vypočítaný přes řetězec k podepsání a klíč pomocí algoritmu SHA256 a pak kódovaný pomocí kódování Base64.

Viz také