Oversigt over backendgodkendelse og godkendelse
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
subjectToken
en 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 -
subjectToken
ogappToken
.Validering af egenskaber for entratoken: Både
subjectToken
ogappToken
valideres 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
appToken
ikke have etscp
krav, men have etidtyp
krav med appen som værdien. Vi kontrollerer også dettetid
krav i lejer-id'et for arbejdsbelastningsudgiveren.Eksempel på appToken-krav:
{ "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" }
validering af subjectToken-egenskaber: Kontrollér, at subjectToken indeholder et
scp
krav medFabricWorkloadControl
området , at der ikke findes nogetidtyp
krav i tokenet, og at det har sammeappid
som iappToken
.Eksempel på subjectToken-krav:
{ "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" }
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.