Κοινή χρήση μέσω


Δημιουργία υπογραφής κοινόχρηστης πρόσβασης OneLake (SAS)

Μπορείτε να δημιουργήσετε μια υπογραφή κοινόχρηστης πρόσβασης OneLake (SAS) για να παρέχετε βραχυπρόθεσμη πρόσβαση με ανάθεση σε έναν φάκελο ή αρχείο στο OneLake, με την υποστήριξη των διαπιστευτηρίων σας Microsoft Entra. Η OneLake SAS μπορεί να παρέχει προσωρινή πρόσβαση σε εφαρμογές που δεν υποστηρίζουν το Microsoft Entra, επιτρέποντάς τους να φορτώνουν δεδομένα ή να λειτουργούν ως διακομιστές μεσολάβησής μεταξύ άλλων εφαρμογών πελατών ή ανεξάρτητων προμηθευτών λογισμικού (ISV).

Για να δημιουργήσετε ένα OneLake SAS, ζητήστε πρώτα ένα κλειδί ανάθεσης χρηστών και, στη συνέχεια, χρησιμοποιήστε το κλειδί για να υπογράψετε το SAS. Για να ζητήσετε ένα κλειδί ανάθεσης χρηστών, καλέστε τη λειτουργία Λήψη κλειδιού ανάθεσης χρηστών.

Ένα OneLake SAS μπορεί να εκχωρήσει πρόσβαση σε αρχεία και φακέλους μόνο μέσα σε στοιχεία δεδομένων. Δεν μπορεί να χρησιμοποιηθεί για λειτουργίες διαχείρισης, όπως η δημιουργία ή διαγραφή χώρων εργασίας ή στοιχείων.

Η δημιουργία ενός SaS OneLake είναι παρόμοια με τη δημιουργία μιας SAS με ανάθεση χρήστη υπηρεσίας αποθήκευσης Azure, χρησιμοποιώντας τις ίδιες παραμέτρους για συμβατότητα με εργαλεία και εφαρμογές που λειτουργούν με την Υπηρεσία αποθήκευσης Azure.

Απαιτούμενα δικαιώματα

Η αίτηση κλειδιού ανάθεσης χρήστη είναι μια λειτουργία σε επίπεδο μισθωτή στο Fabric. Για να ζητήσει ένα κλειδί ανάθεσης χρήστη, ο χρήστης ή η αρχή ασφαλείας που ζητά το κλειδί ανάθεσης χρηστών πρέπει να έχει τουλάχιστον δικαιώματα ανάγνωσης σε έναν χώρο εργασίας στον μισθωτή Fabric. Η ταυτότητα του χρήστη που ζητά χρησιμοποιείται για τον έλεγχο ταυτότητας του SAS, το οποίο σημαίνει ότι ο χρήστης πρέπει να έχει δικαιώματα στα δεδομένα στα οποία εκχωρεί πρόσβαση SAS.

Απόκτηση διακριτικού OAuth 2.0

Για να λάβετε το κλειδί ανάθεσης χρηστών, ζητήστε πρώτα ένα διακριτικό OAuth 2.0 από το αναγνωριστικό Entra της Microsoft. Εξουσιοδοτήστε την κλήση στη λειτουργία Λήψη κλειδιού ανάθεσης χρηστών , παρέχοντας το διακριτικό φορέα. Για περισσότερες πληροφορίες σχετικά με την αίτηση ενός διακριτικού OAuth από το Microsoft Entra ID, ανατρέξτε στο θέμα Ροές ελέγχου ταυτότητας και σενάρια εφαρμογών.

Αίτηση για το κλειδί ανάθεσης χρηστών

Η κλήση της λειτουργίας Λήψη κλειδιού ανάθεσης χρηστών επιστρέφει το κλειδί ως σύνολο τιμών που χρησιμοποιούνται ως παράμετροι στο διακριτικό SAS ανάθεσης χρηστών. Αυτές οι παράμετροι περιγράφονται στην ενότητα Λήψη αναφοράς κλειδιού ανάθεσης χρηστών και στην επόμενη ενότητα.

Σημείωση

Η κλήση της λειτουργίας Λήψη κλειδιού ανάθεσης χρηστών με χρήση ενός φόρτου εργασίας Fabric, όπως ένα σημειωματάριο python, απαιτεί το τοπικό τελικό σημείο για το OneLake, το οποίο καθορίζεται από την περιοχή εκχωρημένων πόρων, διαφορετικά η απόκριση που λαμβάνεται είναι 200 Healthy αντί για το κλειδί ανάθεσης.

Όταν ένα πρόγραμμα-πελάτης ζητά ένα κλειδί ανάθεσης χρήστη χρησιμοποιώντας ένα διακριτικό OAuth 2.0, η OneLake επιστρέφει ένα κλειδί ανάθεσης χρήστη για λογαριασμό του προγράμματος-πελάτη. Ένα SAS που δημιουργήθηκε με αυτό το κλειδί ανάθεσης χρηστών εκχωρείται το πολύ στα δικαιώματα που εκχωρούνται στο πρόγραμμα-πελάτη, το οποίο περικλείεται στα δικαιώματα που εκχωρούνται ρητά στο SAS.

Μπορείτε να δημιουργήσετε οποιονδήποτε αριθμό διακριτικών OneLake SAS για όλη τη διάρκεια ζωής του κλειδιού ανάθεσης χρηστών. Ωστόσο, ένα OneLake SAS και κλειδιά ανάθεσης χρηστών μπορεί να είναι έγκυρα για τουλάχιστον μία ώρα και δεν μπορεί να υπερβεί τη διάρκεια ζωής του διακριτικού που τα ζητά. Αυτοί οι περιορισμοί διάρκειας ζωής είναι μικρότεροι από τη μέγιστη διάρκεια ζωής ενός SAS με ανάθεση από έναν χρήστη υπηρεσίας αποθήκευσης Azure.

Δημιουργία ανάθεσης χρήστη SAS

Ο παρακάτω πίνακας συνοψίζει τα πεδία που υποστηρίζονται για ένα διακριτικό SAS OneLake. Οι επόμενες ενότητες παρέχουν περισσότερες λεπτομέρειες σχετικά με αυτές τις παραμέτρους και πώς διαφέρουν από τα διακριτικά SAS υπηρεσίας αποθήκευσης Microsoft Azure. Το OneLake δεν υποστηρίζει κάθε προαιρετική παράμετρο που υποστηρίζεται από την Υπηρεσία αποθήκευσης Azure και θα απορριφθεί μια SAS OneLake που κατασκευάζεται με μια μη υποστηριζόμενη παράμετρο.

Όνομα πεδίου SAS Παράμετρος διακριτικού SAS Κατάσταση Περιγραφή
signedVersion sv Απαιτείται Υποδεικνύει την έκδοση της υπηρεσίας αποθήκευσης που χρησιμοποιείται για τη δημιουργία του πεδίου υπογραφής. Το OneLake υποστηρίζει εκδόσεις και παλαιότερες ή εκδόσεις 2020-02-10 και νεότερες 2020-12-06 εκδόσεις.
signedResource sr Απαιτείται Καθορίζει ποιοι πόροι είναι προσβάσιμοι μέσω της υπογραφής κοινόχρηστων πρόσβασης. Μόνο τα blob (b) και κατάλογος (d) ισχύουν για το OneLake.
signedStart st Προαιρετικό Η ώρα που η υπογραφή κοινόχρηστής πρόσβασης γίνεται έγκυρη. Μορφή ISO 8601 UTC.
signedExpiry se Απαιτείται Η ώρα κατά την οποία λήγει η υπογραφή κοινόχρηστής πρόσβασης.
signedPermissions sp Απαιτείται Υποδεικνύει ποιες λειτουργίες μπορεί να εκτελέσει το SAS στον πόρο. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Καθορισμός δικαιωμάτων .
signedObjectId skoid Απαιτείται Προσδιορίζει μια κύρια ασφαλείας Microsoft Entra.
signedtenantId sktid Απαιτείται Καθορίζει τον μισθωτή Microsoft Entra στον οποίο έχει οριστεί μια κύρια ασφάλεια.
signedKeyStartTime skt Προαιρετικό Ώρα ΣΕ UTC κατά την εκκίνηση του κλειδιού υπογραφής. Επιστρέφεται από τη λειτουργία Λήψη κλειδιού ανάθεσης χρηστών .
signedKeyExpiryTime ske Απαιτείται Ώρα σε UTC όταν τελειώνει το κλειδί υπογραφής. Επιστρέφεται από τη λειτουργία Λήψη κλειδιού ανάθεσης χρηστών .
signedKeyVersion skv Απαιτείται Η έκδοση υπηρεσίας χώρου αποθήκευσης που χρησιμοποιείται για τη λήψη του κλειδιού ανάθεσης χρήστη. Επιστρέφεται από τη λειτουργία Λήψη κλειδιού ανάθεσης χρηστών . Το OneLake υποστηρίζει εκδόσεις και παλαιότερες ή εκδόσεις 2020-02-10 και νεότερες 2020-12-06 εκδόσεις.
signedKeyService sks Απαιτείται Η έγκυρη υπηρεσία για το κλειδί ανάθεσης χρηστών. Το OneLake υποστηρίζει μόνο χώρο αποθήκευσης αντικειμένων Blob (sks=b).
signature sig Απαιτείται Η υπογραφή είναι ένας κωδικός ελέγχου ταυτότητας μηνύματος βάσει κατακερματισμού (HMAC) που υπολογίζεται μέσω της συμβολοσειράς προς πρόσημο και του κλειδιού χρησιμοποιώντας τον αλγόριθμο SHA256 και, στη συνέχεια, κωδικοποιείται με κωδικοποίηση Base64.
signedDirectoryDepth sdd Προαιρετικό Υποδεικνύει τον αριθμό καταλόγων μέσα στον ριζικό φάκελο του καταλόγου που καθορίζεται στο πεδίο canonicalizedResource της συμβολοσειράς προς πρόσημο. Υποστηρίζεται μόνο όταν sr=d.
signedProtocol spr Προαιρετικό Το OneLake υποστηρίζει μόνο αιτήσεις https.
signedAuthorizedObjectId saoid Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτήν τη δυνατότητα.
signedUnauthorizedObjectId suoid Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτήν τη δυνατότητα.
signedCorrelationId suoid Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.
signedEncryptionScope ses Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει προς το παρόν προσαρμοσμένες εμβέλειες κρυπτογράφησης.
signedIP sip Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει προς το παρόν φιλτράρισμα IP.
Cache-Control κεφαλίδα απόκρισης rscc Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.
Content-Disposition κεφαλίδα απόκρισης rscd Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.
Content-Encoding κεφαλίδα απόκρισης rsce Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.
Content-Language κεφαλίδα απόκρισης rscl Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.
Content Type κεφαλίδα απόκρισης rsct Δεν υποστηρίζεται Το OneLake SAS δεν υποστηρίζει αυτή την παράμετρο.

Καθορισμός δικαιωμάτων

Τα δικαιώματα που καθορίζονται στο signedPermissions πεδίο (sp) στο διακριτικό SAS υποδεικνύουν ποιες λειτουργίες μπορεί να εκτελέσει ένα πρόγραμμα-πελάτης που κατέχει sas στον πόρο.

Τα δικαιώματα μπορούν να συνδυαστούν για να επιτρέψουν σε ένα πρόγραμμα-πελάτη να εκτελεί πολλαπλές λειτουργίες με το ίδιο SAS. Κατά τη δημιουργία του SAS, πρέπει να συμπεριλάβετε δικαιώματα με την ακόλουθη σειρά: racwdxltmeop.

Παραδείγματα έγκυρων ρυθμίσεων δικαιωμάτων είναι rwτα , , rdrl, wd, wlκαι rl. Δεν μπορείτε να καθορίσετε δικαιώματα περισσότερες από μία φορές.

Για να εξασφαλιστεί η ισοτιμία με τα υπάρχοντα εργαλεία υπηρεσίας αποθήκευσης Azure, η OneLake χρησιμοποιεί την ίδια μορφή δικαιωμάτων με την Υπηρεσία αποθήκευσης Azure. Η OneLake αξιολογεί τα δικαιώματα που εκχωρούνται σε ένα SAS στο signedPermissions, τα δικαιώματα της ταυτότητας υπογραφής στο Fabric και τυχόν ρόλους πρόσβασης δεδομένων OneLake, εάν υπάρχουν. Να θυμάστε ότι ορισμένες λειτουργίες, όπως η ρύθμιση δικαιωμάτων ή η διαγραφή χώρων εργασίας, δεν επιτρέπονται στο OneLake μέσω των API υπηρεσίας αποθήκευσης Azure γενικά. Η εκχώρηση αυτού του δικαιώματος (sp=op) δεν επιτρέπει την εκτέλεση αυτών των λειτουργιών από ένα ONELake SAS.

Δικαίωμα Σύμβολο URI Πόρος Επιτρεπόμενες λειτουργίες
Αναγνωσμένη r Κατάλογος, Αντικείμενο blob Διαβάστε το περιεχόμενο, τη λίστα αποκλεισμένων, τις ιδιότητες και τα μετα-δεδομένα οποιουδήποτε αντικειμένου blob στο κοντέινερ ή στον κατάλογο. Χρησιμοποιήστε ένα αντικείμενο blob ως προέλευση μιας λειτουργίας αντιγραφής.
Προσθήκη π.μ. Κατάλογος, Αντικείμενο blob Προσθέστε ένα μπλοκ σε ένα αντικείμενο blob προσάρτησης.
Δημιουργία γ Κατάλογος, Αντικείμενο blob Γράψτε ένα νέο αντικείμενο blob, στιγμιότυπα blob ή αντιγράψτε ένα αντικείμενο blob σε ένα νέο αντικείμενο blob.
Εγγραφή w Κατάλογος, Αντικείμενο blob Δημιουργήστε ή γράψτε περιεχόμενο, ιδιότητες, μετα-δεδομένα ή λίστα αποκλεισμένων. Στιγμιότυπο ή μίσθωση του αντικειμένου blob. Χρησιμοποιήστε το αντικείμενο blob ως προορισμό μιας λειτουργίας αντιγραφής.
Διαγραφή η Κατάλογος, Αντικείμενο blob Διαγράψτε ένα αντικείμενο blob.
Διαγραφή έκδοσης x Σταγόνα Διαγράψτε μια έκδοση αντικειμένων blob.
Οριστική διαγραφή y Σταγόνα Οριστική διαγραφή ενός στιγμιότυπου blob ή έκδοσης.
Λίστα l Κατάλογος Λίστα αντικειμένων blob μη επαναλαμβανόμενα.
Ετικέτες t Σταγόνα Διαβάστε ή γράψτε τις ετικέτες σε ένα αντικείμενο blob.
Μετακίνηση λεπτά Κατάλογος, Αντικείμενο blob Μετακινήστε ένα αντικείμενο blob ή έναν κατάλογο και τα περιεχόμενά του σε μια νέα θέση.
Εκτέλεση e Κατάλογος, Αντικείμενο blob Λάβετε τις ιδιότητες συστήματος και, εάν ο ιεραρχικός χώρος ονομάτων είναι ενεργοποιημένος για τον λογαριασμό χώρου αποθήκευσης, λάβετε το POSIX ACL ενός αντικειμένου blob.
Κυριότητα o Κατάλογος, Αντικείμενο blob Ορίστε τον κάτοχο ή την ομάδα κατοχής. Δεν υποστηρίζεται στο OneLake.
Δικαιώματα μ.μ. Κατάλογος, Αντικείμενο blob Ορίστε τα δικαιώματα. Δεν υποστηρίζεται στο OneLake.
Ορισμός πολιτικής δυνατότητας αποθήκευσης εγώ Σταγόνα Ορίστε ή διαγράψτε την πολιτική αμετάβλητης ή τη νομική διατήρηση ενός αντικειμένου blob.

Καθορισμός της υπογραφής

Το signature πεδίο (sig) χρησιμοποιείται για την εξουσιοδότηση μιας αίτησης που έγινε από έναν υπολογιστή-πελάτη με την υπογραφή κοινόχρηστης πρόσβασης. Η συμβολοσειρά προς πρόσημο είναι μια μοναδική συμβολοσειρά που κατασκευάζεται από τα πεδία που πρέπει να επαληθευτούν για να εγκριθεί η αίτηση. Η υπογραφή είναι μια HMAC που υπολογίζεται μέσω της συμβολοσειράς προς πρόσημο και του κλειδιού χρησιμοποιώντας τον αλγόριθμο SHA256 και, στη συνέχεια, κωδικοποιείται χρησιμοποιώντας κωδικοποίηση bBase65.

Για να δημιουργήσετε τη συμβολοσειρά υπογραφής μιας ανάθεσης χρήστη SAS, δημιουργήστε τη συμβολοσειρά προς πρόσημο από τα πεδία που έγιναν από την αίτηση, κωδικοποιήστε τη συμβολοσειρά ως UTF-8 και, στη συνέχεια, υπολογίστε την υπογραφή χρησιμοποιώντας τον αλγόριθμο HMAC-SHA256. Τα πεδία που περιλαμβάνονται στη συμβολοσειρά προς πρόσημο πρέπει να αποκωδικοποιούνται μέσω URL.

Τα πεδία που απαιτούνται στη συμβολοσειρά προς πρόσημο εξαρτώνται από την έκδοση υπηρεσίας που χρησιμοποιείται για το πεδίο εξουσιοδότησης (sv). Η παρακάτω ενότητα περιγράφει τις ρυθμίσεις παραμέτρων συμβολοσειράς για πρόσημο για εκδόσεις που υποστηρίζουν OneLake SASs.

Έκδοση 2020-12-06 και νεότερες εκδόσεις

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

Έκδοση 2020-02-10 και παλαιότερη

Αυτή η ρύθμιση παραμέτρων ισχύει για την έκδοση 2020-02-10 και παλαιότερη, εκτός από την έκδοση 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" +
                rscc + "\n" +
                rscd + "\n" +  
                rsce + "\n" +  
                rscl + "\n" +  
                rsct

Έκδοση 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

Κανονικός πόρος

Το canonicalizedResource τμήμα της συμβολοσειράς είναι μια κανονικός διαδρομή προς τον πόρο. Πρέπει να περιλαμβάνει το τελικό σημείο OneLake και το όνομα του πόρου και πρέπει να αποκωδικοποιείται η διεύθυνση URL. Μια διαδρομή OneLake πρέπει να περιλαμβάνει τον χώρο εργασίας της και μια διαδρομή καταλόγου πρέπει να περιλαμβάνει τον αριθμό των υποκαταλόγων που αντιστοιχούν στην sdd παράμετρο.

Τα παρακάτω παραδείγματα δείχνουν πώς μπορείτε να μετατρέψετε τη διεύθυνση URL OneLake στον αντίστοιχο πόρο canonicalized. Να θυμάστε ότι το OneLake υποστηρίζει λειτουργίες DFS και αντικείμενα blob και τελικά σημεία και ότι το όνομα λογαριασμού για το OneLake είναι πάντα μοναδικό.

Αρχείο αντικειμένων blob

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

Κατάλογος DFS

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

Παράδειγμα OneLake SAS

Το παρακάτω παράδειγμα εμφανίζει ένα OneLake SAS URI με ένα διακριτικό SAS OneLake προσαρτημένο σε αυτό. Το διακριτικό SAS παρέχει δικαιώματα ανάγνωσης και εγγραφής στον φάκελο Αρχεία στο 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>