Del via


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 og appToken.

  • Validering af egenskaber for entratoken: Både subjectToken og appToken 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 et scp krav, men have et idtyp krav med appen som værdien. Vi kontrollerer også dette tid 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 med FabricWorkloadControl området , at der ikke findes noget idtyp krav i tokenet, og at det har samme appid som i appToken.

    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"
    }
    

Se IAuthenticationService.

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.

Se FabricExtensionController.

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.