Sdílet prostřednictvím


Vytvoření sdíleného přístupového podpisu OneLake (SAS) (Preview)

Můžete vytvořit SAS OneLake, který poskytuje krátkodobý delegovaný přístup ke složce nebo souboru v OneLake založeném na vašich přihlašovacích údajích Microsoft Entra. OneLake SAS může poskytovat dočasný přístup k aplikacím bez podpory microsoft Entra, což jim umožňuje načítat data nebo sloužit jako proxy mezi jinými zákaznickými aplikacemi nebo nezávislými výrobci softwaru (ISV).

Pokud chcete vytvořit SAS OneLake, musíte nejprve požádat o klíč delegování uživatele, který pak použijete k podepsání SAS. Pokud chcete požádat o klíč delegování uživatele, zavolejte operaci Získat klíč delegování uživatele. OneLake SAS může udělit přístup jenom k souborům a složkám v datových položkách a nedá se použít pro operace správy, jako je vytváření nebo odstraňování položek nebo pracovních prostorů.

Sdílený přístupový podpis OneLake může udělit přístup jenom k souborům a složkám v datových položkách a nedá se použít pro operace správy, jako je vytváření pracovních prostorů nebo položek.

Sdílený přístupový podpis OneLake se vytvoří podobně jako sas delegovaný uživatelem ve službě Azure Storage s využitím stejných parametrů pro zajištění kompatibility s nástroji a aplikacemi kompatibilními se službou Azure Storage.

Důležité

Tato funkce je ve verzi Preview.

Přiřazení uživatelských oprávnění

Žádost o klíč delegování uživatele je operace na úrovni tenanta v prostředcích infrastruktury. Aby bylo možné požádat o klíč delegování uživatele, musí mít uživatel nebo objekt zabezpečení požadující klíč delegování uživatele alespoň oprávnění ke čtení v jednom pracovním prostoru v tenantovi Fabric. Identita žádajícího uživatele se používá k ověření SAS, což znamená, že uživatel musí mít oprávnění k datům, kterým udělí přístup SAS.

Získání tokenu OAuth 2.0

Pokud chcete získat klíč delegování uživatele, nejprve požádejte token OAuth 2.0 z ID Microsoft Entra. Autorizuje volání operace Získat klíč delegování uživatele poskytnutím tokenu s nosným schématem. Další informace o vyžádání tokenu OAuth z ID Microsoft Entra naleznete v tématu Toky ověřování a scénáře aplikací.

Žádost o klíč delegování uživatele

Volání operace Získat klíč delegování uživatele vrátí klíč jako sadu hodnot, které se používají jako parametry tokenu SAS delegování uživatele. Tyto parametry jsou popsány v referenčních informacích k získání klíče delegování uživatele a v další části.

Když klient požádá o klíč delegování uživatele pomocí tokenu OAuth 2.0, vrátí OneLake klíč delegování uživatele jménem klienta. Sas vytvořený pomocí tohoto klíče delegování uživatele je udělena maximálně oprávnění udělená klientovi s vymezeným rozsahem na oprávnění explicitně udělená v SAS.

Po celou dobu životnosti klíče delegování uživatele můžete vytvořit libovolný počet SAS OneLake. Klíče delegování oneLake SAS a uživatele ale můžou být platné maximálně jednu hodinu a nemůžou překročit dobu životnosti tokenu, který je požaduje. Tato omezení životnosti jsou kratší než maximální životnost uživatele delegovaného sdíleného přístupového podpisu azure Storage.

Vytvoření SAS delegování uživatele

Následující tabulka shrnuje pole podporovaná pro token SAS OneLake. Další části obsahují další podrobnosti o těchto parametrech a jejich rozdíly od tokenů SAS služby Azure Storage. OneLake nepodporuje všechny volitelné parametry podporované službou Azure Storage a sas OneLake vytvořený s nepodporovaným parametrem se odmítne.

Název pole SAS Parametr tokenu SAS Status Popis
signedVersion sv Povinní účastníci Označuje verzi služby použitou k vytvoření pole podpisu. OneLake podporuje verzi 2020-02-10, všechny verze po '2020-12-06' a verze před '2020-02-10'.
signedResource sr Požaduje se Určuje, které prostředky jsou přístupné prostřednictvím sdíleného přístupového podpisu. Pro OneLake platí pouze objekt blob (b) a adresář (d).
signedStart st Volitelné Čas, kdy bude sdílený přístupový podpis platný. Formát ISO 8601 UTC.
signedExpiry se Požaduje se Čas vypršení platnosti sdíleného přístupového podpisu
signedPermissions sp Požaduje se Určuje, které operace může SAS s prostředkem provádět. Další podrobnosti v části Zadání oprávnění
signedObjectId skoid Požaduje se Identifikuje objekt zabezpečení Microsoft Entra.
signedtenantId sktid Požaduje se Určuje tenanta Microsoft Entra, ve kterém je definován objekt zabezpečení.
signedKeyStartTime skt Volitelné Čas ve standardu UTC při spuštění podpisového klíče Vráceno operací Získat klíč delegování uživatele.
signedKeyExpiryTime ske Požaduje se Čas ve standardu UTC, kdy podpisový klíč skončí. Vráceno operací Získat klíč delegování uživatele.
signedKeyVersion skv Požaduje se Verze služby úložiště, která slouží k získání klíče delegování uživatele. Vráceno operací Získat klíč delegování uživatele. OneLake podporuje verze 2020-02-10 a starší a verze po 12.06. 2020.
signedKeyService sks Požaduje se Platná služba pro klíč delegování uživatele. OneLake podporuje pouze službu Blob Storage (sks=b).
signature sig Požaduje se Podpis je kód pro ověřování zpráv založený na hodnotě hash (HMAC) vypočítaný přes řetězec-znaménko a klíč pomocí algoritmu SHA256 a potom kódovaný s kódováním Base64.
signedAuthorizedObjectId saoid Nepodporované Sas OneLake tuto funkci nepodporuje.
signedUnauthorizedObjectId suoid Nepodporované Sas OneLake tuto funkci nepodporuje.
signedCorrelationId suoid Nepodporované Sas OneLake nepodporuje tento parametr.
signedDirectoryDepth sdd Volitelné Určuje počet adresářů v kořenové složce adresáře zadaného v poli canonicalizedResource řetězce k podpisu. Podporováno pouze v případech, kdy sr=d.
signedEncryptionScope ses Nepodporované Sas OneLake v současné době nepodporuje vlastní obory šifrování.
signedIP sip Nepodporované Sas OneLake v současné době nepodporuje filtrování IP adres.
signedProtocol spr Volitelné OneLake podporuje pouze požadavky https.
Cache-Control hlavička odpovědi rscc Nepodporované Sas OneLake nepodporuje tento parametr.
Content-Disposition hlavička odpovědi rscd Nepodporované Sas OneLake nepodporuje tento parametr.
Content-Encoding hlavička odpovědi rsce Nepodporované Sas OneLake nepodporuje tento parametr.
Content-Language hlavička odpovědi rscl Nepodporované Sas OneLake nepodporuje tento parametr.
Content Type hlavička odpovědi rsct Nepodporované Sas OneLake nepodporuje tento parametr.

Zadání oprávnění

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

Oprávnění je možné kombinovat, aby klient mohl provádět více operací se stejným SAS. 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í zahrnují rw, , rdrl, wdwl, a rl. Oprávnění nemůžete zadat více než jednou.

K zajištění parity se stávajícími nástroji Azure Storage používá OneLake stejný formát oprávnění jako Azure Storage. OneLake vyhodnocuje oprávnění udělená SAS, signedPermissionsoprávnění podpisové identity v Prostředcích infrastruktury a všechny role přístupu k datům OneLake, pokud je to možné. Nezapomeňte, že některé operace, jako je nastavení oprávnění nebo odstranění pracovních prostorů, nejsou na OneLake povolené prostřednictvím rozhraní API služby Azure Storage, a proto udělení tohoto oprávnění (sp=op) nepovolí sas OneLake provádět tyto operace.

Oprávnění Symbol identifikátoru URI Prostředek Povolené operace
Čteno r Adresář, objekt blob Přečtěte si obsah, seznam bloků, 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í d Adresář, objekt blob Přidání bloku do doplňovacího objektu blob
Vytvoření c Adresář, objekt blob Napište nový objekt blob, vytvořte snímek objektu blob nebo zkopírujte objekt blob do nového objektu blob.
Write w Adresář, objekt blob Umožňuje vytvářet nebo zapisovat obsah, vlastnosti, metadata nebo seznam blokovaných položek. Snímek nebo zapůjčení objektu blob Jako cíl operace kopírování použijte objekt blob.
Odstranění d Adresář, objekt blob Odstranění objektu blob
Odstranit verzi linka Objekt blob Odstranění verze objektu blob
Trvalé odstranění y Objekt blob Trvale odstraňte snímek nebo verzi objektu blob.
List l Adresář Vypisovat objekty blob nerekurzivně
Značky t Objekt blob Čtení nebo zápis značek do objektu blob
Přesunout m Adresář, objekt blob Přesuňte objekt blob nebo adresář a jeho obsah do nového umístění.
Spustit e Adresář, objekt blob Získejte systémové vlastnosti a pokud je pro účet úložiště povolený hierarchický obor názvů, získejte seznam POSIX ACL objektu blob.
Vlastnictví o Adresář, objekt blob Nastavte vlastníka nebo vlastnící skupinu. Nepodporováno ve OneLake
Oprávnění p Adresář, objekt blob Nastavte oprávnění. Nepodporováno ve OneLake
Nastavení zásad neměnnosti Mohu Objekt blob Nastavte nebo odstraňte zásady neměnnosti nebo blokování z právních důvodů objektu blob.

Zadání podpisu

Pole signature (sig) slouží k autorizaci požadavku provedeného klientem se sdíleným přístupovým podpisem. Řetězec na znaménko je jedinečný řetězec vytvořený z polí, která musí být ověřena k autorizaci požadavku. Podpis je HMAC vypočítaný přes řetězec-znaménko a klíč pomocí algoritmu SHA256 a pak kódovaný pomocí kódování bBase65.

Pokud chcete vytvořit podpisový řetězec SAS delegování uživatele, vytvořte řetězec-znaménko z polí vytvořených požadavkem, zakódujte řetězec jako UTF-8 a pak tento podpis vypočítáte pomocí algoritmu HMAC-SHA256. Pole zahrnutá v řetězci na znaménko musí být dekódovaná adresou URL.

Pole požadovaná v řetězci a podpisu závisí na verzi služby, která se používá pro pole autorizace (sv). Následující část popisuje konfigurace typu string-to-sign pro verze, které podporují SAS OneLake.

Verze 2020-12-06 a novější

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                signedEncryptionScope + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

Verze 2020-01-10

StringToSign =  signedPermissions + "\n" +
                signedStart + "\n" +
                signedExpiry + "\n" +
                canonicalizedResource + "\n" +
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +
                signedProtocol + "\n" +
                signedVersion + "\n" +
                signedResource + "\n" +
                signedSnapshotTime + "\n" +
                rscc + "\n" +
                rscd + "\n" +
                rsce + "\n" +
                rscl + "\n" +
                rsct

Verze starší než 2020-02-10

StringToSign =  signedPermissions + "\n" +  
                signedStart + "\n" +  
                signedExpiry + "\n" +  
                canonicalizedResource + "\n" +  
                signedKeyObjectId + "\n" +
                signedKeyTenantId + "\n" +
                signedKeyStart + "\n" +
                signedKeyExpiry  + "\n" +
                signedKeyService + "\n" +
                signedKeyVersion + "\n" +
                signedAuthorizedUserObjectId + "\n" +
                signedUnauthorizedUserObjectId + "\n" +
                signedCorrelationId + "\n" +
                signedIP + "\n" +  
                signedProtocol + "\n" +  
                signedVersion + "\n" +  
                signedResource + "\n" +
                rscc + "\n" +
                rscd + "\n" +  
                rsce + "\n" +  
                rscl + "\n" +  
                rsct

Kanonizovaný prostředek

Část canonicalizedResource řetězce je kanonická cesta k prostředku. Musí obsahovat koncový bod OneLake a název prostředku a musí být dekódovaná adresa URL. Cesta OneLake musí obsahovat svůj pracovní prostor a cesta k adresáři musí obsahovat počet podadresářů, které odpovídají parametru sdd .

Následující příklady ukazují, jak převést adresu URL OneLake na odpovídající kanonický prostředek. Mějte na paměti, že OneLake podporuje operace DFS i objekty blob a koncové body a že název účtu pro oneLake je vždy onelake.

Soubor objektu blob

URL = https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv"

Adresář DFS

URL = https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/"

Příklad OneLake SAS

Následující příklad ukazuje identifikátor URI ONELake SAS s připojeným tokenem SAS OneLake. Token SAS poskytuje oprávnění ke čtení a zápisu do složky Files v jezeře.

https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&skoid=<object-id>&sktid=<tenant-id>&skt=2023-05-24T01:13:55Z&ske=2023-05-24T09:13:55Z&sks=b&skv=2022-11-02&sv=2022-11-02&sr=d&sig=<signature>