Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Arbejdsbelastningseksemplet for Fabric-udviklere har følgende godkendelsesflows på backend-siden.
Godkendelse og godkendelse af anmodninger fra Fabric til arbejdsbelastningen
Struktur for godkendelsesheader
Godkendelsesheaderen bruger et bestemt tokenformat:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Dette format indeholder to særskilte tokens:
-
subjectToken: Et delegeret token, der repræsenterer den bruger, på hvis vegne handlingen udføres. -
appToken: Et token, der er specifikt for Fabric-applikationen.
Rationalet bag brugen af en dobbelttokenheader er tredobbelt:
Validering: Arbejdsbelastningen kan bekræfte, at anmodningen stammer fra Fabric, ved at validere
appToken.Brugerkontekst: giver
subjectTokenen brugerkontekst for den handling, der udføres.Kommunikation mellem tjenester: Arbejdsbelastningen kan hente et OBO-token (På vegne af) ved hjælp af
subjectToken, så den kan kalde andre tjenester med et brugertoken.
Godkendelse
De primære godkendelseskontroller, der udføres for SubjectAndAppToken, er:
Validering og parsing af værdien for godkendelsesheaderen udføres i metoden AuthenticateControlPlaneCall . Tokenet skal starte med præfikset "SubjectAndAppToken1.0" og indeholde to tokens -
subjectTokenogappToken.Validering af egenskaber for entratoken: Både
subjectTokenogappTokenvalideres for almindelige Microsoft Entra-tokenegenskaber i metoden ValidateAadTokenCommon . Disse egenskaber omfatter tokensignatur, tokenlevetid, tokenmålgruppe (målgruppe for arbejdsbelastningsapp) og tokenversion (1.0) og udsteder.validering af appToken-egenskaber: skal
appTokenikke have etscpkrav, men have etidtypkrav med appen som værdien. Vi kontrollerer også dettetidkrav i lejer-id'et for arbejdsbelastningsudgiveren.Eksempel på appToken-krav:
{ "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/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" }validering af subjectToken-egenskaber: Kontrollér, at subjectToken indeholder et
scpkrav medFabricWorkloadControlområdet , at der ikke findes nogetidtypkrav i tokenet, og at det har sammeappidsom iappToken.Eksempel på subjectToken-krav:
{ "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/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" }
Bemærk
Alle valideringer i vores eksempelkode er for version 1.0-tokens.
Autorisation
Når det er bekræftet, at anmodningen stammer fra Fabric-tjenesten (via appToken), bekræftede Fabric, at brugeren har de nødvendige tilladelser til at udføre handlingen baseret på Fabric's metadata for tilladelser.
Godkendelse og godkendelse af anmodninger fra arbejdsbelastning til Fabric
Anmodninger om styring af arbejdsbelastning
API'er til styring af arbejdsbelastninger er særlige Fabric-API'er, der understøtter arbejdsbelastninger med administration af fabric-elementers livscyklus. Disse API'er bruger det samme SubjectAndAppToken1.0-godkendelsesheaderformat.
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Kald, der kommer fra arbejdsbelastningen, inkluderede følgende tokens:
subjectToken: Et brugerdelegeret token (hentet via OBO-flowet), der repræsenterer den bruger, på hvis vegne handlingen udføres. Fabric bekræfter, at brugeren har de nødvendige tilladelser til at udføre den nødvendige handling.appToken: Et token, der er specifikt for arbejdsbelastningsprogrammet. Fabric kontrollerer, at dette token er fra Microsoft Entra-appen for den arbejdsbelastning, som det relevante Fabric-element tilhører, og det er på arbejdsbelastningsudgiverens lejer.
Se metoden ValidatePermissions i AuthorizationHandler.
Offentlige API'er
Hvis du vil kalde offentlige Fabric-API'er, skal arbejdsbelastningen hente et Standard Microsoft Entra OBO-token med de relevante API-områder og overføre den som et ihændehavertoken i anmodningens godkendelsesheader.
Godkendelse og godkendelse af anmodninger fra FE for arbejdsbelastning til arbejdsbelastning BE
Godkendelsesheader
Godkendelsesheaderen i en anmodning, der er sendt fra ARBEJDSBELASTNING FE til arbejdsbelastningen BE, bruger et standardbærertoken.
Godkendelse
Metoden AuthenticateControlPlaneCall i arbejdsbelastningen BE er ansvarlig for at validere tokenet. De primære kontroller, der udføres, er:
Levetid for token: Sikrer, at tokenet er inden for den gyldige anvendelsesperiode.
Signatur: Kontrollerer tokenets ægthed.
Målgruppe: Kontrollerer, at tokenets målgruppe stemmer overens med arbejdsbelastningen i Microsoft Entra-appen.
Udsteder: Validerer udstederen af tokenet.
Tilladte områder: Validerer de områder, som tokenet har adgang til.
Godkendelse opnås ved at aktivere metoden ValidatePermissions . Denne metode kalder API'en resolvePermissions i Fabric-slutpunktet for arbejdsbelastningskontrol for det relevante Fabric-element og kontrollerer, at brugeren har de nødvendige tilladelser til handlingen.
Handlinger, der kører i lang tid – opdater token
Godkendelse opnås ved at aktivere metoden ValidatePermissions . Denne metode kalder API'en resolvePermissions i Fabric-slutpunktet for arbejdsbelastningskontrol for det relevante Fabric-element og kontrollerer, at brugeren har de nødvendige tilladelser til handlingen.
Hvis dine arbejdsbelastninger omfatter langvarige handlinger, f.eks. som en del af JobScheduler , kan du støde på en situation, hvor tokenlevetiden ikke er tilstrækkelig. Du kan få flere oplysninger om, hvordan du godkender langvarige OBO-processer.