Oversikt over serverdelgodkjenning og godkjenning
Arbeidsbelastningseksempelet for Fabric-utviklere har følgende godkjenningsflyter på baksiden.
Godkjenning og godkjenning av forespørsler fra Fabric til arbeidsbelastningen
Autorisasjonshodestruktur
Autorisasjonshodet bruker et bestemt tokenformat:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Dette formatet inneholder to distinkte tokener:
subjectToken
: Et delegert token som representerer brukeren på vegne av operasjonen som utføres.appToken
: Et token som er spesifikt for Stoff-programmet.
Begrunnelsen bak bruk av en topptekst med to tokener er tredoblet:
Validering: Arbeidsmengden kan bekrefte at forespørselen stammer fra Fabric ved å
appToken
validere .Brukerkontekst: Gir
subjectToken
en brukerkontekst for handlingen som utføres.Inter-Service Communication: Arbeidsbelastningen kan skaffe seg et OBO-token (On-Behalf-Of) ved hjelp av , slik at den
subjectToken
kan ringe andre tjenester med et brukertoken.
Autentisering
De viktigste godkjenningskontrollene som utføres for SubjectAndAppToken, er:
Validering og analyse av autorisasjonshodeverdien utføres i authenticateControlPlaneCall-metoden . Tokenet må starte med prefikset SubjectAndAppToken1.0 og inkludere to tokener og
subjectToken
appToken
.Validering av entratokenegenskaper: Begge
subjectToken
ogappToken
valideres for vanlige Microsoft Entra-tokenegenskaper i ValidateAadTokenCommon-metoden . Disse egenskapene inkluderer tokensignatur, token levetid, token målgruppe (arbeidsbelastning app målgruppe), og token versjon (1.0) og utsteder.validering av appToken-egenskaper: Det
appToken
skal ikke ha etscp
krav, men bør ha etidtyp
krav med appen som verdi. Vi kontrollerer også dettetid
kravet i leier-ID-en for arbeidsbelastningsutgiveren.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 av subjectToken-egenskaper: Kontroller at subjectToken inneholder et
scp
krav medFabricWorkloadControl
omfanget, at det ikke finnes noeidtyp
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" }
Merk
Alle valideringene i eksempelkoden er for versjon 1.0-tokener.
Autorisasjon
Når bekreftet at forespørselen stammer fra Fabric-tjenesten (via appToken
), bekreftet Fabric at brukeren har de nødvendige tillatelsene til å utføre handlingen, basert på Fabrics tillatelsesmetadata.
Godkjenning og godkjenning av forespørsler fra arbeidsbelastning til Fabric
Forespørsler om arbeidsbelastningskontroll
Arbeidsbelastningskontroll-API-er er spesielle Fabric-API-er som støtter arbeidsbelastninger med behandling av stoffelementlivssyklus. Disse API-ene bruker samme SubjectAndAppToken1.0-autorisasjonshodeformat.
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Anrop som kommer fra arbeidsbelastningen, inkludert følgende tokener:
subjectToken
: Et brukerdelegert token (innhentet gjennom OBO-flyten) som representerer brukeren på vegne av operasjonen som utføres. Fabric bekrefter at brukeren har de nødvendige tillatelsene til å utføre den nødvendige handlingen.appToken
: Et token som er spesifikt for arbeidsbelastningsprogrammet. Fabric kontrollerer at dette tokenet er fra Microsoft Entra-appen for arbeidsbelastningen som det relevante Fabric-elementet tilhører, og som er på arbeidsbelastningsutgiverens leier.
ValidatePermissions
Se metoden i AuthorizationHandler.
Offentlige API-er
Hvis du vil kalle offentlige fabric-API-er, bør arbeidsbelastningen skaffe seg et standard Microsoft Entra OBO-token med de relevante API-omfangene og sende det som et bærertoken i forespørselens autorisasjonshode.
Godkjenning og godkjenning av forespørsler fra arbeidsbelastning FE til arbeidsbelastning BE
Autorisasjonshode
Autorisasjonshodet i en forespørsel sendt fra arbeidsbelastningen FE til arbeidsbelastningen BE bruker et standard bærertoken.
Autentisering
AuthenticateControlPlaneCall-metoden i arbeidsbelastningen BE er ansvarlig for å validere tokenet. De primære kontrollene som utføres er:
Tokenlevetid: Sikrer at tokenet er innenfor gyldig bruksperiode.
Signatur: Bekrefter tokenets ekthet.
Målgruppe: Kontrollerer at tokenets målgruppe samsvarer med arbeidsbelastningen Microsoft Entra-appen.
Utsteder: Validerer utstederen av tokenet.
Tillatte omfang: Validerer omfanget som tokenet har tilgang til.
Godkjenning oppnås ved å aktivere metoden ValidatePermissions . Denne metoden kaller resolvePermissions
API-en i Arbeidsbelastningskontrollendepunktet fabric for det relevante Fabric-elementet og bekrefter at brukeren har de nødvendige tillatelsene for operasjonen.
Langvarige operasjoner – oppdateringstoken
Godkjenning oppnås ved å aktivere metoden ValidatePermissions . Denne metoden kaller resolvePermissions
API-en i Arbeidsbelastningskontrollendepunktet fabric for det relevante Fabric-elementet og bekrefter at brukeren har de nødvendige tillatelsene for operasjonen.
Hvis arbeidsbelastningene inkluderer langvarige operasjoner, for eksempel som en del av JobScheduler , kan du støte på en situasjon der tokenens levetid ikke er tilstrekkelig. Hvis du vil ha mer informasjon om hvordan du godkjenner langvarig prosess, kan du bruke langvarige OBO-prosesser.