Επισκόπηση ελέγχου ταυτότητας και εξουσιοδότησης παρασκηνίου
Το δείγμα φόρτου εργασίας προγραμματιστή Fabric έχει τις ακόλουθες ροές ελέγχου ταυτότητας στην πλευρά παρασκηνίου.
Έλεγχος ταυτότητας και εξουσιοδότηση αιτήσεων από το Fabric προς τον φόρτο εργασίας
Δομή κεφαλίδας εξουσιοδότησης
Η κεφαλίδα εξουσιοδότησης χρησιμοποιεί μια συγκεκριμένη μορφή διακριτικού:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Αυτή η μορφή περιλαμβάνει δύο ξεχωριστά διακριτικά:
subjectToken
: Ένα διακριτικό με ανάθεση που αντιπροσωπεύει τον χρήστη για λογαριασμό του οποίου εκτελείται η λειτουργία.appToken
: Ένα διακριτικό που είναι συγκεκριμένο για την εφαρμογή Fabric.
Το σκεπτικό πίσω από τη χρήση μιας κεφαλίδας διπλού διακριτικού είναι τρεις φορές:
Επικύρωση: Ο φόρτος εργασίας μπορεί να επαληθεύσει ότι η αίτηση προέρχεται από το Fabric επικυρώνοντας το
appToken
.Περιβάλλον χρήστη: Η
subjectToken
παρέχει ένα περιβάλλον χρήστη για την ενέργεια που εκτελείται.Επικοινωνία μεταξύ υπηρεσιών: Ο φόρτος εργασίας μπορεί να αποκτήσει ένα διακριτικό Εκ μέρους του (OBO) χρησιμοποιώντας το , επιτρέποντάς του
subjectToken
να καλεί άλλες υπηρεσίες με διακριτικό χρήστη.
Έλεγχος ταυτότητας
Οι κύριοι έλεγχοι ταυτότητας που εκτελούνται για το SubjectAndAppToken είναι οι εξής:
Η επικύρωση και η ανάλυση της τιμής κεφαλίδας εξουσιοδότησης γίνεται στη μέθοδο AuthenticateControlPlaneCall . Το διακριτικό πρέπει να ξεκινά με το πρόθημα "SubjectAndAppToken1.0" και να περιλαμβάνει δύο διακριτικά -
subjectToken
καιappToken
.Επικύρωση ιδιοτήτων διακριτικού entra: Αμφότερα
subjectToken
τα καιappToken
επικυρώνονται για συνήθεις ιδιότητες διακριτικού Microsoft Entra στη μέθοδο ValidateAadTokenCommon . Αυτές οι ιδιότητες περιλαμβάνουν υπογραφή διακριτικού, διάρκεια ζωής διακριτικού, κοινό διακριτικού (κοινό εφαρμογής φόρτου εργασίας) και έκδοση διακριτικού (1.0) και εκδότη.επικύρωση ιδιοτήτων appToken: Δεν
appToken
θα έπρεπε να υπάρχειscp
αξίωση αλλά θα πρέπει να έχει μιαidtyp
αξίωση με την εφαρμογή ως τιμή. Ελέγχουμε επίσης αυτήtid
την αξίωση στο αναγνωριστικό μισθωτή εκδότη φόρτου εργασίας.Δείγμα ισχυρισμών appToken:
{ "aud": "api://localdevinstance/00001111-aaaa-2222-bbbb-3333cccc4444/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": "11112222-bbbb-3333-cccc-4444dddd5555" "appidacr": "2", "idp": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "idtyp": "app", "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "rh": "0.ACgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZAAA.", "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "uti": "5bgMXs3uMUSAHCruRjACAA", "ver": "1.0" }
επικύρωση ιδιοτήτων subjectToken: Βεβαιωθείτε ότι το subjectToken περιλαμβάνει μια
scp
αξίωση με τηνFabricWorkloadControl
εμβέλεια, ότι δενidtyp
υπάρχει αξίωση στο διακριτικό και ότι έχει το ίδιο όπωςappid
στοappToken
.Δείγματα ισχυρισμών subjectToken:
{ "aud": "api://localdevinstance/00001111-aaaa-2222-bbbb-3333cccc4444/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": "11112222-bbbb-3333-cccc-4444dddd5555" "appidacr": "2", "ipaddr": "46.117.19.50", "name": "john doe", "oid": "bbbbbbbb-1111-2222-3333-cccccccccccc", "rh": "0.ASgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZANQ.", "scp": "FabricWorkloadControl", "sub": "X0Wl85UA-uOmdkQz5MoT-hEgYZXDq9FYdS8g2bFUaZA", "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "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 ελέγχει ότι αυτό το διακριτικό προέρχεται από την εφαρμογή Microsoft Entra του φόρτου εργασίας στον οποίο ανήκει το σχετικό στοιχείο Fabric και το οποίο βρίσκεται στον μισθωτή του εκδότη του φόρτου εργασίας.
Ανατρέξτε στη ValidatePermissions
μέθοδο στο AuthorizationHandler.
Δημόσια API
Για την κλήση δημόσιων API Fabric, ο φόρτος εργασίας θα πρέπει να αποκτήσει ένα τυπικό διακριτικό Microsoft Entra OBO με τις σχετικές εμβέλειες API και να το διαβιβάσει ως διακριτικό φορέα στην κεφαλίδα εξουσιοδότησης της αίτησης.
Ανατρέξτε στο θέμα FabricExtensionController.
Έλεγχος ταυτότητας και εξουσιοδότηση αιτήσεων από το FE φόρτου εργασίας στον φόρτο εργασίας BE
Κεφαλίδα εξουσιοδότησης
Η κεφαλίδα εξουσιοδότησης σε μια αίτηση που αποστέλλεται από τον φόρτο εργασίας FE στον φόρτο εργασίας ΙΧ χρησιμοποιεί ένα τυπικό διακριτικό φορέα.
Έλεγχος ταυτότητας
Η μέθοδος AuthenticateControlPlaneCall στον φόρτο εργασίας BE είναι υπεύθυνη για την επικύρωση του διακριτικού. Οι κύριοι έλεγχοι που εκτελούνται είναι οι εξής:
Διάρκεια ζωής διακριτικού: Εξασφαλίζει ότι το διακριτικό είναι εντός της έγκυρης περιόδου χρήσης του.
Υπογραφή: Επαληθεύει τον έλεγχο ταυτότητας του διακριτικού.
Κοινό: Ελέγχει αν το κοινό του διακριτικού συμφωνεί με τον φόρτο εργασίας της εφαρμογής Microsoft Entra.
Εκδότης: Επικυρώνει τον εκδότη του διακριτικού.
Επιτρεπόμενες εμβέλειες: Επικυρώνει τις εμβέλειες στις οποίες επιτρέπεται να έχει πρόσβαση το διακριτικό.
Η εξουσιοδότηση επιτυγχάνεται με κλήση της μεθόδου ValidatePermissions . Αυτή η μέθοδος καλεί το resolvePermissions
API στο τελικό σημείο ελέγχου φόρτου εργασίας Fabric για το σχετικό στοιχείο Fabric και επαληθεύει ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για τη λειτουργία.
Λειτουργίες μεγάλης διάρκειας - διακριτικό ανανέωσης
Η εξουσιοδότηση επιτυγχάνεται με κλήση της μεθόδου ValidatePermissions . Αυτή η μέθοδος καλεί το resolvePermissions
API στο τελικό σημείο ελέγχου φόρτου εργασίας Fabric για το σχετικό στοιχείο Fabric και επαληθεύει ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για τη λειτουργία.
Εάν οι φόρτοι εργασίας σας περιλαμβάνουν λειτουργίες μεγάλης διάρκειας, για παράδειγμα, ως μέρος του JobScheduler μπορεί να αντιμετωπίσετε μια κατάσταση όπου η διάρκεια ζωής του διακριτικού δεν επαρκεί. Για περισσότερες πληροφορίες σχετικά με τον τρόπο ελέγχου ταυτότητας μιας διεργασίας μεγάλης διάρκειας, διαδικασίες OBO μακράς διαρκείας.