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


Επισκόπηση ελέγχου ταυτότητας και εξουσιοδότησης παρασκηνίου

Το δείγμα φόρτου εργασίας προγραμματιστή 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 (μέσω της ), το appTokenFabric επαλήθευσε ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για την εκτέλεση της ενέργειας, με βάση τα μετα-δεδομένα δικαιωμάτων του 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 μακράς διαρκείας.