GraphQL API-k biztonságossá tétele Microsoft Fabric Role-Based Access Control használatával (előzetes verzió)

A GraphQL-hez készült Role-Based Access Control (RBAC) lehetővé teszi az API-tulajdonosok számára annak szabályozását, hogy ki férhet hozzá a GraphQL-típusokhoz és -műveletekhez. Ez az előzetes verziójú funkció lehetővé teszi szerepkörök definiálását, felhasználók hozzárendelését ezekhez a szerepkörökhöz, és explicit módon engedélyeket adhat a lekérdezési és mutációs műveletekhez sémaszinten. Az RBAC célja, hogy segítsen az API-tulajdonosoknak a minimális jogosultságú hozzáférés érvényesítésében, és hogy megfeleljenek a biztonságos GraphQL API-k általános ügyfélkövetelményeinek.

A GraphQL RBAC a következőket segíti:

  • Bizalmas adattípusokhoz való hozzáférés korlátozása
  • Csak olvasási hozzáférés engedélyezése anélkül, hogy módosításokat tenne lehetővé
  • Megakadályozza, hogy a jogosulatlan felhasználók lekérdezéseket hajtsanak végre, még akkor is, ha meghívhatják az API-t
  • A hozzáférés központi kezelése szerepkörökön keresztül, nem pedig egyéni engedélyeken keresztül

RBAC engedélyezése GraphQL API-n

  1. Nyissa meg a GraphQL-elemet.

  2. Az RBAC bekapcsolásához válassza az API-adathozzáférés kezelése (előzetes verzió) lehetőséget.

    Képernyőkép az API-adathozzáférés kezelése (előzetes verzió) az eszköztárról.

  3. Erősítse meg a funkció engedélyezését.

    Note

    Az alapértelmezett szerepkör írási/olvasási engedélyekkel rendelkezik. Az alapértelmezett szerepkör törlése eltávolítja az elemtulajdonos hozzáférését A felhasználóknak egy szerepkörhöz kell tartoznia az adatok eléréséhez

Egyéni szerepkör létrehozása

Létrehozhat teljes olvasási írási hozzáférési szerepköröket vagy korlátozott hozzáférési szerepköröket. Az engedélyek közvetlenül a szerepkör létrehozása után lépnek érvénybe.

Teljes írási-olvasási hozzáférési szerepkör

Hozzon létre egy szerepkört teljes olvasási és írási hozzáféréssel az összes adathoz.

  1. Szerepkör létrehozásához válassza az Új lehetőséget. Az összes adathoz való olvasási és írási hozzáféréssel rendelkező új szerepkör létrehozását bemutató képernyőkép.

  2. Adjon meg érvényes szerepkörnevet.

  3. Vegyen fel egy vagy több felhasználót tagként.

  4. Ha minden adathoz hozzáférést szeretne adni a szerepkörnek, válassza a Minden adat lehetőséget.

  5. Engedélyek megadásához válasszon ki egy vagy több műveletet (lekérdezést vagy mutációt) a szerepkörhöz.

Korlátozott hozzáférési szerepkör

Meghatározott adatokhoz korlátozott hozzáféréssel rendelkező szerepkör létrehozása.

  1. Ha részletes hozzáféréssel szeretne szerepkört létrehozni, válassza az Új lehetőséget, és válassza a Kijelölt adatok lehetőséget. Képernyőkép egy új szerepkör létrehozásáról, amely korlátozott hozzáféréssel rendelkezik a kijelölt adatokhoz
  2. Adjon meg érvényes szerepkörnevet.
  3. Vegyen fel egy vagy több felhasználót tagként.
  4. Ha részletes szinten szeretné korlátozni a hozzáférést, válassza a Kijelölt adatok lehetőséget.
  5. A szerepkörhöz hozzáadni kívánt táblák kiválasztásához válassza a Tallózás a GraphQL-sémában lehetőséget.

Mező- és sorszintű hozzáférés-vezérlés

A szerepkörök mező- és sorszintjén részletesebb engedélyeket határozhat meg.

  1. A részletes hozzáférés frissítéséhez szerkessze a szerepkört, és nyissa meg a további lehetőségeket (...)..

  2. A mezőnkénti engedélyek megtekintéséhez és módosításához válassza a Típusbiztonság lehetőséget. Megtekintheti az összes olyan műveletet, amelyet a kijelölt típus végrehajthat az adott szerepkörhöz. Minden művelethez külön kijelölheti vagy törölheti az egyes mezők kijelölését.

    A részletes hozzáférési jogosultságok frissítéséhez a szerepkör szerkesztését mutató képernyőkép.

    Ha például engedélyezni szeretné, hogy egy szerepkör az Ügyfelek típusú fiók kivételével az összes mezőt beolvassa, lépjen a Műveletek területen a Kijelölt műveletek területre, válassza ki a getCustomers (olvasás) műveletet, majd a Mező beszúrása engedélyek területen törölje a Fiók mező kijelölését.

    Képernyőkép a típusbiztonság engedélyezéséről.

  3. A sorszintű hozzáférés szabályozásához használja a Kifejezések mezőt a sorszintű hozzáférési szabályok meghatározásához.

    Képernyőkép a típusbiztonság konfigurálásáról és az epressziók használatáról

Engedélyezési hibák

Ha egy felhasználó olyan műveletet kísérel meg, amelyet a hozzárendelt szerepkörök nem engedélyeznek, a kérés engedélyezési hibával meghiúsul. Ez a viselkedés a következőkre vonatkozik:

  • Mutációk engedély nélkül
  • Nem engedélyezett típusok lekérdezései
  • Bármilyen hozzáférés, ha a felhasználó nem tagja egy szerepkörnek

Mi történik, ha nincsenek szerepkörök?

Ha az összes szerepkör (beleértve az alapértelmezett szerepkört is) el lesz távolítva:

  • Az aktuális felhasználó elveszíti hozzáférését az API-hoz.
  • A GraphQL-lekérdezések végrehajtása engedélyezési hibával meghiúsul.

Ez a kikényszerítés biztosítja, hogy a hozzáféréshez való jogosultságot kifejezetten meg kell adni, és az soha nem lehet vélelmezett.

Következő lépések