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
, wl
og 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>