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


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

Το δείγμα φόρτου εργασίας προγραμματιστή 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 και επαληθεύει ότι ο χρήστης έχει τα απαραίτητα δικαιώματα για τη λειτουργία.