Επισκόπηση ελέγχου ταυτότητας και εξουσιοδότησης παρασκηνίου (προεπισκόπηση)
Το δείγμα φόρτου εργασίας προγραμματιστή Fabric έχει τις ακόλουθες ροές ελέγχου ταυτότητας στην πλευρά παρασκηνίου.
Έλεγχος ταυτότητας και εξουσιοδότηση αιτήσεων από το Fabric προς τον φόρτο εργασίας
Δομή κεφαλίδας εξουσιοδότησης
Η κεφαλίδα εξουσιοδότησης χρησιμοποιεί μια συγκεκριμένη μορφή διακριτικού:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Αυτή η μορφή περιλαμβάνει δύο ξεχωριστά διακριτικά:
subjectToken
: Αυτό είναι ένα διακριτικό με ανάθεση που αντιπροσωπεύει τον χρήστη για λογαριασμό του οποίου εκτελείται η λειτουργία.appToken
: Αυτό είναι ένα διακριτικό που αφορά ειδικά την εφαρμογή Fabric.
Το σκεπτικό πίσω από τη χρήση μιας κεφαλίδας διπλού διακριτικού είναι τρεις φορές:
Επικύρωση: Ο φόρτος εργασίας μπορεί να επαληθεύσει ότι η αίτηση προέρχεται από το Fabric επικυρώνοντας το
appToken
.Περιβάλλον χρήστη: Η
subjectToken
παρέχει ένα περιβάλλον χρήστη για την ενέργεια που εκτελείται.Επικοινωνία μεταξύ υπηρεσιών: Ο φόρτος εργασίας μπορεί να αποκτήσει ένα διακριτικό Εκ μέρους του (OBO) χρησιμοποιώντας το , επιτρέποντάς του
subjectToken
να καλεί άλλες υπηρεσίες με διακριτικό χρήστη.
Έλεγχος ταυτότητας
Οι κύριοι έλεγχοι ταυτότητας που εκτελούνται για το SubjectAndAppToken είναι οι εξής:
Επικύρωση και ανάλυση της τιμής κεφαλίδας εξουσιοδότησης: Αυτό γίνεται στη μέθοδο FetchSubjectAndAppTokenTokenFromHeader . Το διακριτικό πρέπει να ξεκινά με το πρόθημα "SubjectAndAppToken1.0" και να περιλαμβάνει δύο διακριτικά -
subjectToken
καιappToken
.Επικύρωση ιδιοτήτων διακριτικού entra: Αμφότερα
subjectToken
τα καιappToken
επικυρώνονται για συνήθεις ιδιότητες διακριτικού Microsoft Entra στη μέθοδο ValidateAadTokenCommon . Αυτές οι ιδιότητες περιλαμβάνουν υπογραφή διακριτικού, διάρκεια ζωής διακριτικού, κοινό διακριτικού (κοινό εφαρμογής φόρτου εργασίας) και έκδοση διακριτικού (1.0) και εκδότη.επικύρωση ιδιοτήτων appToken: Δεν
appToken
θα έπρεπε να υπάρχειscp
αξίωση αλλά θα πρέπει να έχει μιαidtyp
αξίωση με την εφαρμογή ως τιμή. Ελέγχουμε επίσης αυτήtid
την αξίωση στο αναγνωριστικό μισθωτή εκδότη φόρτου εργασίας.Δείγμα ισχυρισμών appToken:
{ "aud": "api://localdevinstance/12345678-77f3-4fcc-bdaa-487b920cb7ee/Fabric.WorkloadSample/123", "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "iat": 1700047232, "nbf": 1700047232, "exp": 1700133932, "aio": "E2VgYLjBuv2l+c6cmm/iP/bnL2v+AQA=", "appid": "00000009-0000-0000-c000-000000000000", "appidacr": "2", "idp": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "idtyp": "app", "oid": "87654321-727a-403d-b7d4-8e4a48865158", "rh": "0.ACgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZAAA.", "sub": "87654321-727a-403d-b7d4-8e4a48865158", "tid": "12345678-77f3-4fcc-bdaa-487b920cb7ee", "uti": "5bgMXs3uMUSAHCruRjACAA", "ver": "1.0" }
επικύρωση ιδιοτήτων subjectToken: Βεβαιωθείτε ότι το subjectToken περιλαμβάνει μια
scp
αξίωση με τηνFabricWorkloadControl
εμβέλεια, ότι δενidtyp
υπάρχει αξίωση στο διακριτικό και ότι έχει το ίδιο όπωςappid
στοappToken
.Δείγματα ισχυρισμών subjectToken:
{ "aud": "api://localdevinstance/12345678-77f3-4fcc-bdaa-487b920cb7ee/Fabric.WorkloadSample/123", "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "iat": 1700050446, "nbf": 1700050446, "exp": 1700054558, "acr": "1", "aio": "ATQAy/8VAAAAUgWRMRnBo4VGHvrKRykUXOXBNKS1cHnBxLrYkZJJGSjAVyJGBecbLdSud1GUakER", "amr": [ "pwd" ], "appid": "00000009-0000-0000-c000-000000000000", "appidacr": "2", "ipaddr": "46.117.19.50", "name": "john doe", "oid": "abacabac-f91e-41db-b997-699f17146275", "rh": "0.ASgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZANQ.", "scp": "FabricWorkloadControl", "sub": "X0Wl85UA-uOmdkQz5MoT-hEgYZXDq9FYdS8g2bFUaZA", "tid": "12345678-77f3-4fcc-bdaa-487b920cb7ee", "unique_name": "user1@constso.com", "upn": "user1@constso.com", "uti": "_llZwmJoSUiHv-kw6tfDAA", "ver": "1.0" }
Ανατρέξτε στο θέμα IAuthenticationService.
Σημείωμα
Όλες οι επικυρώσεις στο δείγμα κώδικα αφορούν τα διακριτικά έκδοσης 1.0.
Εξουσιοδότηση
Μόλις επιβεβαιωθεί ότι η αίτηση προέρχεται από την υπηρεσία Fabric (μέσω appToken
του ), είναι κατανοητό ότι το Fabric έχει ήδη επαληθεύσει ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για την εκτέλεση της ενέργειας, με βάση τα μετα-δεδομένα δικαιωμάτων του Fabric.
Έλεγχος ταυτότητας και εξουσιοδότηση αιτήσεων από φόρτο εργασίας σε Fabric
Αιτήσεις ελέγχου φόρτου εργασίας
Τα API ελέγχου φόρτου εργασίας είναι ειδικά API Fabric που υποστηρίζουν φόρτους εργασίας με τη διαχείριση του κύκλου ζωής στοιχείων Fabric. Αυτά τα API χρησιμοποιούν την ίδια μορφή κεφαλίδας εξουσιοδότησης SubjectAndAppToken1.0.
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Όταν προέρχεται από τον φόρτο εργασίας, τα διακριτικά που περιλαμβάνονται είναι τα εξής:
subjectToken
: Πρόκειται για ένα διακριτικό με ανάθεση από τον χρήστη (το οποίο λαμβάνεται μέσω της ροής OBO) και αντιπροσωπεύει τον χρήστη εκ μέρους του οποίου εκτελείται η λειτουργία. Το Fabric επαληθεύει ότι ο χρήστης έχει τα απαιτούμενα δικαιώματα για την εκτέλεση της απαραίτητης ενέργειας.appToken
: Αυτό είναι ένα διακριτικό που αφορά ειδικά την εφαρμογή φόρτου εργασίας. Το Fabric ελέγχει ότι αυτό το διακριτικό προέρχεται από την εφαρμογή Entra του φόρτου εργασίας στον οποίο ανήκει το σχετικό στοιχείο Fabric και το οποίο βρίσκεται στον μισθωτή του εκδότη του φόρτου εργασίας.
Ανατρέξτε στη ValidatePermissions
μέθοδο στο AuthorizationHandler.
Δημόσια API
Για την κλήση δημόσιων API Fabric, ο φόρτος εργασίας θα πρέπει να αποκτήσει ένα τυπικό διακριτικό Microsoft Entra OBO με τις σχετικές εμβέλειες API και να το διαβιβάσει ως διακριτικό φορέα στην κεφαλίδα εξουσιοδότησης της αίτησης.
Ανατρέξτε στο θέμα FabricExtensionController.
Έλεγχος ταυτότητας και εξουσιοδότηση αιτήσεων από το FE φόρτου εργασίας στον φόρτο εργασίας BE
Κεφαλίδα εξουσιοδότησης
Η κεφαλίδα εξουσιοδότησης σε μια αίτηση που αποστέλλεται από τον φόρτο εργασίας FE στον φόρτο εργασίας ΙΧ χρησιμοποιεί ένα τυπικό διακριτικό φορέα.
Έλεγχος ταυτότητας
Η μέθοδος ValidateDelegatedAADToken στον φόρτο εργασίας BE είναι υπεύθυνη για την επικύρωση του διακριτικού. Οι κύριοι έλεγχοι που εκτελούνται είναι οι εξής:
Διάρκεια ζωής διακριτικού: Εξασφαλίζει ότι το διακριτικό είναι εντός της έγκυρης περιόδου χρήσης του.
Υπογραφή: Επαληθεύει τον έλεγχο ταυτότητας του διακριτικού.
Ακροατήριο: Ελέγχει αν το κοινό του διακριτικού συμφωνεί με τον φόρτο εργασίας της εφαρμογής Entra.
Εκδότης: Επικυρώνει τον εκδότη του διακριτικού.
Επιτρεπόμενες εμβέλειες: Επικυρώνει τις εμβέλειες στις οποίες επιτρέπεται να έχει πρόσβαση το διακριτικό.
Εξουσιοδότηση
Η εξουσιοδότηση επιτυγχάνεται με κλήση της μεθόδου ValidatePermissions . Αυτή η μέθοδος καλεί το resolvePermissions
API στο τελικό σημείο ελέγχου φόρτου εργασίας Fabric για το σχετικό στοιχείο Fabric και επαληθεύει ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για τη λειτουργία.