Serverové overovanie a prehľad oprávnenia

Ukážka vyťaženia vývojára služby Fabric obsahuje na strane serveru nasledujúce postupy overovania.

Overovanie a oprávnenie požiadaviek zo služby Fabric na vyťaženie

Štruktúra hlavičky oprávnenia

Hlavička oprávnenia používa konkrétny formát tokenu:

SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"

Tento formát obsahuje dva odlišné tokeny:

  • subjectToken: Delegovaný token predstavujúci používateľa, v mene ktorého sa operácia vykonáva.
  • appToken: Token špecifický pre aplikáciu Fabric.

Trinásobné zdôvodnenie používania hlavičky duálneho tokenu:

  • Overenie: Vyťaženie môže overiť, či žiadosť pochádza z fabricu overením appTokenvlastnosti .

  • Kontext používateľa: poskytuje subjectToken používateľský kontext pre vykonávanú akciu.

  • Komunikácia medzi službami: Vyťaženie môže získať token on-behalf-of (OBO) pomocou subjectTokenrozhrania , čo mu umožní volať iné služby pomocou používateľského tokenu.

Overovanie

Hlavné kontroly overenia vykonané pre subjectAndAppToken sú:

  • Overenie a analýza hodnoty hlavičky oprávnenia sa vykonáva v metóde AuthenticateControlPlaneCall . Token musí začínať predponou SubjectAndAppToken1.0 a musí obsahovať dva tokeny – subjectToken a appToken.

  • Overenie vlastností tokenu Entra: Oba subjectToken a appToken sú overené pre bežné vlastnosti tokenu Microsoft Entra v metóde ValidateAadTokenCommon . Tieto vlastnosti zahŕňajú podpis tokenu, životnosť tokenu, cieľovú skupinu tokenov (publikum aplikácie vyťaženia) a verziu tokenu (1.0) a vydavateľa.

  • Overenie vlastností appToken: The appToken by nemal mať scp nárok, ale mal by mať nárok s aplikáciouidtypako hodnotou. Toto tvrdenie si tiež overíme tid v ID nájomníka vydavateľa vyťaženia.

    Vzorové nároky appToken:

    {
    "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"
    }
    
  • Overenie vlastností subjectToken: Uistite sa, že subjektToken obsahuje požiadavku scp s FabricWorkloadControl rozsahom, že sa v tokene nenachádza žiadne idtyp tvrdenie a že je rovnaký appid ako v argumente appToken.

    Vzorové tvrdenia subjektuToken:

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

Pozrite si tému IAuthenticationService.

Poznámka

Všetky overenia v našom vzorovom kóde sú pre tokeny verzie 1.0.

Oprávnenie

Po potvrdení, že žiadosť pochádza zo služby Fabric (prostredníctvom appToken), fabric overil, že používateľ má potrebné povolenia na vykonanie danej akcie na základe metaúdajov povolení služby Fabric.

Overovanie a oprávnenie žiadostí z vyťaženia do služby Fabric

Požiadavky na ovládací prvok vyťaženia

Rozhrania API na riadenie vyťaženia sú špeciálne rozhrania API služby Fabric, ktoré podporujú vyťaženia pomocou spravovania životného cyklu položky služby Fabric. Tieto rozhrania API používajú rovnaký formát hlavičiek SubjectAndAppToken1.0 oprávnenia.

SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"

Volania prichádzajúce z vyťaženia zahŕňali nasledujúce tokeny:

  • subjectToken: Token delegovaný používateľom (získaný prostredníctvom postupu OBO), ktorý predstavuje používateľa, v mene ktorého sa vykonáva operácia. Fabric overí, či má používateľ požadované povolenia na vykonanie potrebnej akcie.

  • appToken: Token špecifický pre aplikáciu na vyťaženie. Fabric skontroluje, či tento token pochádza z aplikácie Microsoft Entra vyťaženia, do ktorých patrí príslušná položka služby Fabric a ktorá sa nachádza v nájomníkovi vydavateľa vyťaženia.

Pozrite si metódu ValidatePermissions v časti AuthorizationHandler.

Verejné rozhrania API

Ak chcete volať verejné rozhrania API služby Fabric, vyťaženie by malo získať štandardný token Microsoft Entra OBO s príslušnými rozsahmi rozhrania API a odovzdať ho ako nosný token v hlavičke oprávnenia žiadosti.

Pozrite si tému FabricExtensionController.

Overovanie a oprávnenie požiadaviek z nástroja FE na vyťaženie služby FE

Hlavička oprávnenia

Hlavička oprávnenia v žiadosti odoslanej z nástroja FE vyťaženia do služby BE používa štandardný nosný token.

Overovanie

Metóda AuthenticateControlPlaneCall v službe BE zodpovedá za overenie tokenu. Vykonané primárne kontroly sú:

  • Životnosť tokenu: Zaistí, že token sa nachádza v rámci platného obdobia používania.

  • Podpis: overí pravosť tokenu.

  • Cieľová skupina: Skontroluje, či cieľová skupina tokenu zodpovedá vyťaženiu aplikácie Microsoft Entra.

  • Emitent: Overí emitenta tokenu.

  • Povolené rozsahy: Overí rozsahy, ku ktorým má token prístup.

Povolenie sa dosiahne vyvolaním metódy ValidatePermissions . Táto metóda volá rozhranie resolvePermissions API v koncovom bode ovládacieho prvku vyťaženia služby Fabric pre príslušnú položku služby Fabric a overí, či má používateľ potrebné povolenia na operáciu.

Dlhotrvajúce operácie – obnovenie tokenu

Povolenie sa dosiahne vyvolaním metódy ValidatePermissions . Táto metóda volá rozhranie resolvePermissions API v koncovom bode ovládacieho prvku vyťaženia služby Fabric pre príslušnú položku služby Fabric a overí, či má používateľ potrebné povolenia na operáciu.

Ak vaše vyťaženia zahŕňajú dlhotrvajúce operácie, napríklad ako súčasť ponuky JobScheduler , môže sa vyskytnúť situácia, v ktorej nie je životnosť tokenu postačujúca. Ďalšie informácie o overenia dlhotrvajúcich procesoch OBO, ktoré sú spustené dlho.