Del via


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 å appTokenvalidere .

  • 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 subjectTokenkan 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 og appToken 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 et scp krav, men bør ha et idtyp krav med appen som verdi. Vi kontrollerer også dette tid 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 med FabricWorkloadControl omfanget, at det ikke finnes noe 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.

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.

Se FabricExtensionController.

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.