Del via


Opret en OneLake-signatur for delt adgang (SAS) (prøveversion)

Du kan oprette en OneLake SAS for at give kortsigtet, delegeret adgang til en mappe eller fil i OneLake, der understøttes af dine Microsoft Entra-legitimationsoplysninger. OneLake SAS kan give midlertidig adgang til programmer uden support til Microsoft Entra, så de kan indlæse data eller fungere som proxyer mellem andre kundeprogrammer eller uafhængige softwareleverandører (ISV'er).

Hvis du vil oprette en OneLake SAS, skal du først anmode om en brugerdelegeringsnøgle, som du derefter bruger til at signere SAS. Hvis du vil anmode om en brugerdelegeringsnøgle, skal du kalde handlingen Hent brugerdelegeringsnøgle . OneLake SAS kan kun give adgang til filer og mapper i dataelementer og kan ikke bruges til administration, f.eks. oprettelse eller sletning af elementer eller arbejdsområder.

En OneLake SAS kan kun give adgang til filer og mapper i dataelementer og kan ikke bruges til administrationshandlinger, f.eks. oprettelse af arbejdsområder eller elementer.

En OneLake SAS oprettes på samme måde som Azure Storage-brugerdelegeret SAS ved hjælp af de samme parametre for kompatibilitet med værktøjer og programmer, der er kompatible med Azure Storage.

Vigtigt

Denne funktion er en prøveversion.

Tildel tilladelser

Anmodning om en brugerdelegeringsnøgle er en handling på lejerniveau i Fabric. Hvis du vil anmode om en brugerdelegeringsnøgle, skal det bruger- eller sikkerhedsprincip, der anmoder om brugerdelegeringsnøglen, som minimum have læserettigheder i ét arbejdsområde i Fabric-lejeren. Den anmodende brugers identitet bruges til at godkende SAS, hvilket betyder, at brugeren skal have tilladelse til de data, vedkommende giver SAS-adgang til.

Hent et OAuth 2.0-token

Hvis du vil hente brugerdelegeringsnøglen, skal du først anmode om et OAuth 2.0-token fra Microsoft Entra-id. Godkend kaldet til handlingen Hent brugerdelegeringsnøgle ved at angive tokenet med ihændehaverskemaet. Du kan få flere oplysninger om anmodning om et OAuth-token fra Microsoft Entra ID under Godkendelsesflows og programscenarier.

Anmod om brugerdelegeringsnøglen

Hvis du kalder handlingen Hent brugerdelegeringsnøgle, returneres nøglen som et værdisæt, der bruges som parametre på SAS-tokenet til brugerdelegering. Disse parametre er beskrevet i referencen Hent brugerdelegeringsnøgle og i næste afsnit.

Når en klient anmoder om en brugerdelegeringsnøgle ved hjælp af et OAuth 2.0-token, returnerer OneLake en brugerdelegeringsnøgle på vegne af klienten. En SAS, der er oprettet med denne brugerdelegeringsnøgle, tildeles højst de tilladelser, der er tildelt klienten, begrænset til de tilladelser, der udtrykkeligt er tildelt i SAS.

Du kan oprette et vilkårligt antal OneLake SAS'er for brugerdelegeringsnøglens levetid. Men en OneLake SAS- og brugerdelegeringsnøgler kan være gyldige i højst én time og må ikke overskride levetiden for det token, der anmoder om dem. Disse levetidsbegrænsninger er kortere end den maksimale levetid for en Azure Storage-brugerdelegeret SAS.

Opret en SAS for brugerdelegering

I følgende tabel opsummeres de felter, der understøttes for et OneLake SAS-token. Efterfølgende afsnit indeholder flere oplysninger om disse parametre, og hvordan de adskiller sig fra Azure Storage SAS-tokens. OneLake understøtter ikke alle valgfri parametre, der understøttes af Azure Storage, og en OneLake SAS, der er oprettet med en parameter, der ikke understøttes, afvises.

SAS-feltnavn SAS-tokenparameter Status Beskrivelse
signedVersion sv Obligatorisk Angiver den version af tjenesten, der bruges til at konstruere signaturfeltet. OneLake understøtter version '2020-02-10', alle versioner efter '2020-12-06' og versioner før '2020-02-10'.
signedResource sr Obligatorisk Angiver, hvilke ressourcer der er tilgængelige via signaturen for delt adgang. Kun blob (b) og mappe (d) gælder for OneLake.
signedStart st Valgfrit Det tidspunkt, hvor den delte adgangssignatur bliver gyldig. ISO 8601 UTC-format.
signedExpiry se Obligatorisk Det tidspunkt, hvor den delte adgangssignatur udløber
signedPermissions sp Obligatorisk Angiver, hvilke handlinger SAS kan udføre på ressourcen. Flere oplysninger i afsnittet Angiv tilladelser
signedObjectId skoid Obligatorisk Identificerer en Microsoft Entra-sikkerhedsprincipal.
signedtenantId sktid Obligatorisk Angiver den Microsoft Entra-lejer, som en sikkerhedsprincipal er defineret i.
signedKeyStartTime skt Valgfrit Klokkeslæt i UTC, når signeringsnøglen starter. Returneret af handlingen Hent brugerdelegeringsnøgle .
signedKeyExpiryTime ske Obligatorisk Tid i UTC, når signeringsnøglen slutter. Returneret af handlingen Hent brugerdelegeringsnøgle .
signedKeyVersion skv Obligatorisk Den version af lagertjenesten, der bruges til at hente brugerdelegeringsnøglen. Returneret af handlingen Hent brugerdelegeringsnøgle . OneLake understøtter versioner 2020-02-10 og før og versioner efter 12-2020-2020
signedKeyService sks Obligatorisk Den gyldige tjeneste for brugerdelegeringsnøglen. OneLake understøtter kun Blob Storage (sks=b).
signature sig Obligatorisk Signaturen er en hashbaseret kode til godkendelse af meddelelser (HMAC), der beregnes via streng til sign og nøgle ved hjælp af SHA256-algoritmen og derefter kodet med Base64-kodning.
signedAuthorizedObjectId saoid Ikke-understøttet OneLake SAS understøtter ikke denne funktion.
signedUnauthorizedObjectId suoid Ikke-understøttet OneLake SAS understøtter ikke denne funktion.
signedCorrelationId suoid Ikke-understøttet OneLake SAS understøtter ikke denne parameter.
signedDirectoryDepth sdd Valgfrit Angiver antallet af mapper i rodmappen for den mappe, der er angivet i feltet CanonicalizedResource i strengen-til-sign. Understøttes kun, når sr=d.
signedEncryptionScope ses Ikke-understøttet OneLake SAS understøtter i øjeblikket ikke brugerdefinerede krypteringsområder.
signedIP sip Ikke-understøttet OneLake SAS understøtter i øjeblikket ikke IP-filtrering
signedProtocol spr Valgfrit OneLake understøtter kun https-anmodninger.
Cache-Control svarheader rscc Ikke-understøttet OneLake SAS understøtter ikke denne parameter.
Content-Disposition svarheader rscd Ikke-understøttet OneLake SAS understøtter ikke denne parameter.
Content-Encoding svarheader rsce Ikke-understøttet OneLake SAS understøtter ikke denne parameter.
Content-Language svarheader rscl Ikke-understøttet OneLake SAS understøtter ikke denne parameter.
Content Type svarheader rsct Ikke-understøttet OneLake SAS understøtter ikke denne parameter.

Angiv tilladelser

De tilladelser, der er angivet i feltet signedPermissions (sp) på SAS-tokenet, angiver, hvilke handlinger en klient med SAS kan udføre på ressourcen.

Tilladelser kan kombineres, så en klient kan udføre flere handlinger med samme SAS. Når du opretter SAS, skal du inkludere tilladelser i følgende rækkefølge: racwdxltmeop.

Eksempler på gyldige tilladelsesindstillinger omfatter rw, rd, rl, wd, wlog rl. Du kan ikke angive en tilladelse mere end én gang.

OneLake bruger det samme tilladelsesformat som Azure Storage for at sikre paritet med eksisterende Azure Storage-værktøjer. OneLake evaluerer de tilladelser, der er tildelt til en SAS i signedPermissions, tilladelserne for signeringsidentiteten i Fabric og eventuelle OneLake-dataadgangsroller, hvis det er relevant. Husk, at nogle handlinger, f.eks. angivelse af tilladelser eller sletning af arbejdsområder, ikke er tilladt på OneLake via Azure Storage-API'er generelt, og at tildeling af denne tilladelse (sp=op) derfor ikke tillader en OneLake SAS at udføre disse handlinger.

Tilladelse URI-symbol Ressource Tilladte handlinger
Læst r Mappe, blob Læs indholdet, blokeringslisten, egenskaberne og metadataene for en hvilken som helst blob i objektbeholderen eller mappen. Brug en blob som kilde til en kopihandling.
Tilføj a Mappe, blob Føj en blok til en tilføjelsesblob.
Opret c Mappe, blob Skriv en ny blob, snapshot en blob, eller kopiér en blob til en ny blob.
Skriv a Mappe, blob Opret eller skriv indhold, egenskaber, metadata eller blokliste. Snapshot eller lease bloben. Brug blob'en som destination for en kopihandling.
Delete d Mappe, blob Slet en blob.
Slet version x Blob Slet en blobversion.
Permanent sletning y Blob Slet et snapshot eller en version af blob permanent.
List l Directory Vis blobs uden rekursivt.
Tags d Blob Læs eller skriv mærkerne på en blob.
Flyt m Mappe, blob Flyt en blob eller en mappe og dens indhold til en ny placering.
Udfør e Mappe, blob Hent systemegenskaberne, og hvis det hierarkiske navneområde er aktiveret for lagerkontoen, skal du hente POSIX ACL for en blob.
Ejerskab o Mappe, blob Angiv ejeren eller ejergruppen. Understøttes ikke i OneLake
Tilladelser p Mappe, blob Angiv tilladelserne. Understøttes ikke i OneLake
Angiv politik for uforanderlighed Jeg Blob Angiv eller slet uforanderlighedspolitikken eller den juridiske venteposition på en blob.

Angiv signaturen

Feltet signature (sig) bruges til at godkende en anmodning fra en klient med den delte adgangssignatur. String-to-sign er en entydig streng, der er oprettet ud fra de felter, der skal bekræftes for at godkende anmodningen. Signaturen er en HMAC, der beregnes via streng til sign og nøgle ved hjælp af SHA256-algoritmen og derefter kodes ved hjælp af bBase65-kodning.

Hvis du vil konstruere signaturstrengen for en BRUGERdelegerings-SAS, skal du oprette strengen til signering fra de felter, der er foretaget af anmodningen, kode strengen som UTF-8 og derefter beregne signaturen ved hjælp af HMAC-SHA256-algoritmen. De felter, der er inkluderet i streng-til-tegnet, skal være URL-afkodede.

De felter, der kræves i streng-til-tegnet, afhænger af den tjenesteversion, der bruges til godkendelsesfeltet (sv). I følgende afsnit beskrives konfigurationen af string-to-sign for versioner, der understøtter OneLake SASs.

Version 2020-12-06 og nyere

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

Version 10-01-2020

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

Tidligere versioner end 10-02-2020

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

Vedtaget ressource

Delen canonicalizedResource af strengen er en vedtaget sti til ressourcen. Det skal indeholde OneLake-slutpunktet og ressourcenavnet og skal afkodes for URL-adressen. En OneLake-sti skal indeholde arbejdsområdet, og en mappesti skal indeholde antallet af undermapper, der svarer til sdd parameteren.

I følgende eksempler kan du se, hvordan du konverterer din OneLake-URL-adresse til den tilsvarende vedtagne ressource. Husk, at OneLake understøtter både DFS- og Blob-handlinger og -slutpunkter, og at kontonavnet for din OneLake altid er onelake.

Blobfil

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

DFS-adresseliste

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

Eksempel på OneLake SAS

I følgende eksempel vises en OneLake SAS URI med et OneLake SAS-token tilføjet. SAS-tokenet giver læse- og skrivetilladelser til mappen Filer i 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>