Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Arbetsbelastningsexemplet för Infrastrukturutvecklare har följande autentiseringsflöden på serversidan.
Autentisering och auktorisering av begäranden från Infrastrukturresurser till arbetsbelastningen
Auktoriseringshuvudstruktur
Auktoriseringshuvudet använder ett specifikt tokenformat:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Det här formatet innehåller två distinkta token:
-
subjectToken: En delegerad token som representerar användaren för vars räkning åtgärden utförs. -
appToken: En token som är specifik för Fabric-programmet.
Logiken bakom att använda en rubrik med dubbla token är tredubbel:
Validering: Arbetsbelastningen kan kontrollera att begäran kommer från Infrastrukturresurser genom att
appTokenverifiera .Användarkontext: Tillhandahåller
subjectTokenen användarkontext för åtgärden som utförs.Kommunikation mellan tjänster: Arbetsbelastningen kan hämta en OBO-token (On-Behalf-Of) med hjälp av
subjectToken, så att den kan anropa andra tjänster med en användartoken.
Autentisering
De viktigaste autentiseringskontrollerna som utförs för SubjectAndAppToken är:
Verifiering och parsning av värdet för auktoriseringshuvudet görs i metoden AuthenticateControlPlaneCall . Token måste börja med prefixet "SubjectAndAppToken1.0" och innehålla två token -
subjectTokenochappToken.Validering av egenskaper för Entra-token: Båda
subjectTokenochappTokenverifieras för vanliga Egenskaper för Microsoft Entra-token i metoden ValidateAadTokenCommon . Dessa egenskaper omfattar tokensignatur, tokenlivslängd, tokenpublik (målgrupp för arbetsbelastningsapp) och tokenversion (1.0) och utfärdare.appToken-egenskapsvalidering: Ska
appTokeninte ha ettscpanspråk men bör ha ettidtypanspråk med appen som värde. Vi kontrollerar också dettidanspråket i klient-ID:t för arbetsbelastningsutgivaren.Exempel på appToken-anspråk:
{ "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" }subjectToken properties validation: Se till att subjectToken innehåller ett
scpanspråk med omfångetFabricWorkloadControl, att det inte finns någotidtypanspråk i token och att det har sammaappidsom iappToken.Exempel på subjectToken-anspråk:
{ "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" }
Kommentar
Alla valideringar i vår exempelkod gäller för version 1.0-token.
Auktorisering
När du har bekräftat att begäran kommer från Fabric-tjänsten (via appToken), verifierade Infrastrukturresursen att användaren har de behörigheter som krävs för att utföra åtgärden, baserat på Fabrics behörighetsmetadata.
Autentisering och auktorisering av begäranden från arbetsbelastning till infrastrukturresurser
Begäranden om arbetsbelastningskontroll
API:er för arbetsbelastningskontroll är särskilda Infrastruktur-API:er som stöder arbetsbelastningar med livscykelhantering för infrastrukturobjekt. Dessa API:er använder samma subjectAndAppToken1.0-auktoriseringshuvudformat.
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Samtal som kommer från arbetsbelastningen inkluderade följande token:
subjectToken: En användardelegeringstoken (hämtad via OBO-flödet) som representerar användaren för vars räkning åtgärden utförs. Fabric verifierar att användaren har de behörigheter som krävs för att utföra den nödvändiga åtgärden.appToken: En token som är specifik för arbetsbelastningsprogrammet. Infrastrukturresurser kontrollerar att den här token kommer från Microsoft Entra-appen för arbetsbelastningen som det relevanta infrastrukturobjektet tillhör och som finns i arbetsbelastningsutgivarens klientorganisation.
ValidatePermissions Se metoden i AuthorizationHandler.
Offentliga API:er
Om du vill anropa offentliga Infrastruktur-API:er bör arbetsbelastningen hämta en Microsoft Entra OBO-standardtoken med relevanta API-omfång och skicka den som en ägartoken i begärans auktoriseringshuvud.
Autentisering och auktorisering av begäranden från arbetsbelastningen FE till arbetsbelastningEN BE
Auktoriseringshuvud
Auktoriseringshuvudet i en begäran som skickas från arbetsbelastningen FE till arbetsbelastningen BE använder en standard-ägartoken.
Autentisering
Metoden AuthenticateControlPlaneCall i arbetsbelastningen BE ansvarar för att verifiera token. De primära kontroller som utförs är:
Tokenlivslängd: Säkerställer att token ligger inom dess giltiga användningsperiod.
Signatur: Verifierar tokens äkthet.
Målgrupp: Kontrollerar att tokens målgrupp matchar arbetsbelastningens Microsoft Entra-app.
Utfärdare: Validerar utfärdaren av token.
Tillåtna omfång: Verifierar de omfång som token har åtkomst till.
Auktorisering uppnås genom att metoden ValidatePermissions anropas . Den här metoden anropar API:et resolvePermissions i fabric-arbetsbelastningskontrollslutpunkten för det relevanta infrastrukturobjektet och verifierar att användaren har de behörigheter som krävs för åtgärden.
Tidskrävande åtgärder – uppdateringstoken
Auktorisering uppnås genom att metoden ValidatePermissions anropas . Den här metoden anropar API:et resolvePermissions i fabric-arbetsbelastningskontrollslutpunkten för det relevanta infrastrukturobjektet och verifierar att användaren har de behörigheter som krävs för åtgärden.
Om dina arbetsbelastningar inkluderar tidskrävande åtgärder, till exempel som en del av JobScheduler , kan du stöta på en situation där tokenlivslängden inte räcker. Mer information om hur du autentiserar tidskrävande processer, långvariga OBO-processer.