Delen via


Een Shared Access Signature (SAS) voor OneLake maken (preview)

U kunt een OneLake SAS maken om korte, gedelegeerde toegang te bieden tot een map of bestand in OneLake, ondersteund door uw Microsoft Entra-referenties. OneLake SAS kan tijdelijke toegang bieden tot toepassingen zonder ondersteuning voor Microsoft Entra, zodat ze gegevens kunnen laden of als proxy's kunnen fungeren tussen andere klanttoepassingen of onafhankelijke softwareleveranciers (ISV's).

Als u een OneLake SAS wilt maken, moet u eerst een gebruikersdelegeringssleutel aanvragen, die u vervolgens gebruikt om de SAS te ondertekenen. Als u een gebruikersdelegatiesleutel wilt aanvragen, roept u de bewerking Gebruikersdelegeringssleutel ophalen aan. OneLake SAS kan alleen toegang verlenen tot bestanden en mappen binnen gegevensitems en kan niet worden gebruikt voor beheerbewerkingen, zoals het maken of verwijderen van items of werkruimten.

Een OneLake SAS kan alleen toegang verlenen tot bestanden en mappen binnen gegevensitems en kan niet worden gebruikt voor beheerbewerkingen, zoals het maken van werkruimten of items.

Een OneLake SAS wordt op dezelfde manier gemaakt als door de gebruiker gedelegeerde SAS van Azure Storage, met behulp van dezelfde parameters voor compatibiliteit met hulpprogramma's en toepassingen die compatibel zijn met Azure Storage.

Belangrijk

Deze functie is beschikbaar als preview-versie.

Machtigingen toewijzen

Het aanvragen van een gebruikersdelegatiesleutel is een bewerking op tenantniveau in Fabric. Als u een gebruikersdelegatiesleutel wilt aanvragen, moet de gebruiker of het beveiligingsprincipe dat de gebruikersdelegeringssleutel aanvraagt, ten minste leesmachtigingen hebben in één werkruimte in de Fabric-tenant. De identiteit van de gebruiker wordt gebruikt om de SAS te verifiëren. Dit betekent dat de gebruiker toestemming moet hebben voor de gegevens waartoe de gebruiker de SAS-toegang verleent.

Een OAuth 2.0-token verkrijgen

Als u de gebruikersdelegeringssleutel wilt ophalen, vraagt u eerst een OAuth 2.0-token aan bij Microsoft Entra-id. Autoriseren van de aanroep van de bewerking Gebruikersdelegatiesleutel ophalen door het token met het Bearer-schema op te geven. Zie Verificatiestromen en toepassingsscenario's voor meer informatie over het aanvragen van een OAuth-token van Microsoft Entra ID.

De gebruikersdelegeringssleutel aanvragen

Als u de bewerking Sleutel voor gebruikersoverdracht ophalen aanroept, wordt de sleutel geretourneerd als een set waarden die worden gebruikt als parameters voor het SAS-token voor gebruikersdelegatie. Deze parameters worden beschreven in de naslaginformatie over de gebruikersdelegeringssleutel ophalen en in de volgende sectie.

Wanneer een client een gebruikersdelegeringssleutel aanvraagt met behulp van een OAuth 2.0-token, retourneert OneLake een gebruikersdelegatiesleutel namens de client. Een SAS die is gemaakt met deze gebruikersdelegeringssleutel, wordt maximaal de machtigingen verleend die aan de client zijn verleend, beperkt tot de machtigingen die expliciet zijn verleend in de SAS.

U kunt een willekeurig aantal OneLake-SAS's maken voor de levensduur van de gebruikersdelegeringssleutel. Een OneLake SAS en gebruikersdelegatiesleutels kunnen echter maximaal één uur geldig zijn en kunnen de levensduur van het token dat ze aanvraagt, niet overschrijden. Deze levensduurbeperkingen zijn korter dan de maximale levensduur van een gedelegeerde SAS van een Azure Storage-gebruiker.

Een SAS voor gebruikersdelegering maken

De volgende tabel bevat een overzicht van de velden die worden ondersteund voor een OneLake SAS-token. In volgende secties vindt u meer informatie over deze parameters en hoe deze verschillen van AZURE Storage SAS-tokens. OneLake biedt geen ondersteuning voor elke optionele parameter die wordt ondersteund door Azure Storage en een OneLake SAS die is samengesteld met een niet-ondersteunde parameter wordt geweigerd.

SAS-veldnaam SAS-tokenparameter -Status Beschrijving
signedVersion sv Vereist Geeft de versie aan van de service die wordt gebruikt om het handtekeningveld samen te stellen. OneLake ondersteunt versie 2020-02-10, alle versies na '2020-12-06' en versies vóór '2020-02-10'.
signedResource sr Vereist Hiermee geeft u op welke resources toegankelijk zijn via de Shared Access Signature. Alleen blob (b) en map (d) zijn van toepassing op OneLake.
signedStart st Optioneel Het tijdstip waarop de handtekening voor gedeelde toegang geldig wordt. ISO 8601 UTC-indeling.
signedExpiry se Vereist Het tijdstip waarop de handtekening voor gedeelde toegang verloopt
signedPermissions sp Vereist Geeft aan welke bewerkingen de SAS op de resource kan uitvoeren. Meer informatie vindt u in de sectie Machtigingen opgeven
signedObjectId skoid Vereist Identificeert een Microsoft Entra-beveiligingsprincipaal.
signedtenantId sktid Vereist Hiermee geeft u de Microsoft Entra-tenant op waarin een beveiligingsprincipaal wordt gedefinieerd.
signedKeyStartTime skt Optioneel Tijd in UTC wanneer de ondertekeningssleutel wordt gestart. Geretourneerd door de bewerking Gebruikersdelegeringssleutel ophalen.
signedKeyExpiryTime ske Vereist Tijd in UTC wanneer de ondertekeningssleutel eindigt. Geretourneerd door de bewerking Gebruikersdelegeringssleutel ophalen.
signedKeyVersion skv Vereist De versie van de opslagservice die wordt gebruikt om de gebruikersdelegeringssleutel op te halen. Geretourneerd door de bewerking Gebruikersdelegeringssleutel ophalen. OneLake ondersteunt versies 2020-02-10 en vóór en versies na 2020-12-06
signedKeyService sks Vereist De geldige service voor de gebruikersdelegeringssleutel. OneLake ondersteunt alleen Blob Storage (sks=b).
signature sig Vereist De handtekening is een HMAC (hash-based message authentication code) die wordt berekend via het tekenreeks-naar-teken en de sleutel met behulp van het SHA256-algoritme en vervolgens gecodeerd met Base64-codering.
signedAuthorizedObjectId saoid Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze functie.
signedUnauthorizedObjectId suoid Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze functie.
signedCorrelationId suoid Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.
signedDirectoryDepth sdd Optioneel Geeft het aantal mappen in de hoofdmap van de map aan die is opgegeven in het veld canonicalizedResource van het tekenreeks-naar-teken. Alleen ondersteund wanneer sr=d.
signedEncryptionScope ses Niet ondersteund OneLake SAS biedt momenteel geen ondersteuning voor aangepaste versleutelingsbereiken.
signedIP sip Niet ondersteund OneLake SAS biedt momenteel geen ondersteuning voor IP-filtering
signedProtocol spr Optioneel OneLake ondersteunt alleen https-aanvragen.
Cache-Control antwoordheader rscc Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.
Content-Disposition antwoordheader rscd Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.
Content-Encoding antwoordheader rsce Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.
Content-Language antwoordheader rscl Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.
Content Type antwoordheader rsct Niet ondersteund OneLake SAS biedt geen ondersteuning voor deze parameter.

Machtigingen opgeven

De machtigingen die zijn opgegeven in het signedPermissions veld (sp) van het SAS-token geven aan welke bewerkingen een client met de SAS kan uitvoeren op de resource.

Machtigingen kunnen worden gecombineerd om een client in staat te stellen meerdere bewerkingen uit te voeren met dezelfde SAS. Wanneer u de SAS maakt, moet u machtigingen in de volgende volgorde opnemen: racwdxltmeop

Voorbeelden van geldige machtigingsinstellingen zijn onder andere rw, rd, rl, wden wlrl. U kunt niet meer dan één keer een machtiging opgeven.

Om pariteit met bestaande Azure Storage-hulpprogramma's te garanderen, gebruikt OneLake dezelfde machtigingsindeling als Azure Storage. OneLake evalueert de machtigingen die zijn verleend aan een SAS in signedPermissions, de machtigingen van de ondertekeningsidentiteit in Fabric en eventuele rollen voor OneLake-gegevenstoegang, indien van toepassing. Houd er rekening mee dat sommige bewerkingen, zoals het instellen van machtigingen of het verwijderen van werkruimten, over het algemeen niet zijn toegestaan op OneLake via Azure Storage-API's, en daarom wordt het verlenen van die machtiging (sp=op) niet toegestaan dat een OneLake SAS deze bewerkingen uitvoert.

Machtiging URI-symbool Bron Toegestane bewerkingen
Read r Map, blob Lees de inhoud, bloklijst, eigenschappen en metagegevens van een blob in de container of map. Gebruik een blob als bron van een kopieerbewerking.
Toevoegen a Map, blob Voeg een blok toe aan een toevoeg-blob.
Maken c Map, blob Schrijf een nieuwe blob, maak een momentopname van een blob of kopieer een blob naar een nieuwe blob.
Schrijven w Map, blob Inhoud, eigenschappen, metagegevens of bloklijst maken of schrijven. Momentopname of lease van de blob. Gebruik de blob als de bestemming van een kopieerbewerking.
Delete d Map, blob Een blob verwijderen.
Versie verwijderen x Blob Een blobversie verwijderen.
Permanent verwijderen y Blob Verwijder een blob-momentopname of -versie definitief.
List l Directory Geef blobs niet-recursief weer.
Tags h Blob Lees of schrijf de tags op een blob.
Verplaatsen m Map, blob Verplaats een blob of map en de inhoud ervan naar een nieuwe locatie.
Uitvoeren e Map, blob Haal de systeemeigenschappen op en haal de POSIX-ACL van een blob op als de hiërarchische naamruimte is ingeschakeld voor het opslagaccount.
Eigendom o Map, blob Stel de eigenaar of eigenaar van de groep in. Niet ondersteund in OneLake
Machtigingen nm Map, blob Stel de machtigingen in. Niet ondersteund in OneLake
Onveranderbaarheidsbeleid instellen Ik Blob Het onveranderbaarheidsbeleid of juridische bewaring voor een blob instellen of verwijderen.

De handtekening opgeven

Het signature veld (sig) wordt gebruikt voor het autoriseren van een aanvraag van een client met de handtekening voor gedeelde toegang. Het tekenreeks-naar-teken is een unieke tekenreeks die is samengesteld uit de velden die moeten worden geverifieerd om de aanvraag te autoriseren. De handtekening is een HMAC die wordt berekend via de tekenreeks-naar-teken en sleutel met behulp van het SHA256-algoritme en vervolgens gecodeerd met behulp van bBase65-codering.

Als u de handtekeningtekenreeks van een SAS voor gebruikersdelegering wilt maken, maakt u de tekenreeks naar teken van de velden die door de aanvraag zijn gemaakt, codeert u de tekenreeks als UTF-8 en berekent u de handtekening met behulp van het HMAC-SHA256-algoritme. De velden die zijn opgenomen in het tekenreeks-naar-teken, moeten url-decoderen.

De velden die vereist zijn in het tekenreeks-naar-teken, zijn afhankelijk van de serviceversie die wordt gebruikt voor het autorisatieveld (sv). In de volgende sectie worden de configuraties voor tekenreeks-naar-teken beschreven voor versies die Ondersteuning bieden voor OneLake SASs.

Versie 2020-12-06 en hoger

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

Versie 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

Versies ouder dan 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

Canonicalized resource

Het canonicalizedResource gedeelte van de tekenreeks is een canoniek pad naar de resource. Het moet het OneLake-eindpunt en de resourcenaam bevatten en moet een URL zijn gedecodeerd. Een OneLake-pad moet de werkruimte bevatten en een mappad moet het aantal submappen bevatten dat overeenkomt met de sdd parameter.

In de volgende voorbeelden ziet u hoe u uw OneLake-URL converteert naar de bijbehorende canonieke resource. Houd er rekening mee dat OneLake zowel DFS- als blobbewerkingen en eindpunten ondersteunt en dat de accountnaam voor uw OneLake altijd onelake is.

Blobbestand

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

DFS-map

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

OneLake SAS-voorbeeld

In het volgende voorbeeld ziet u een OneLake SAS-URI met een OneLake SAS-token dat eraan is toegevoegd. Het SAS-token biedt lees- en schrijfmachtigingen voor de map Bestanden in het lakehouse.

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>