Riadenie prístupu na základe rolí (Role-Based Access Control)

Aktualizované

Riadenie prístupu na základe rolí (RBAC) je model autorizácie, ktorý zoskupuje oprávnenia do rolí a tie následne priraďuje používateľom alebo službám. Pri audite softvéru vytvoreného pomocou AI (vibe-coded) odhaľuje, či majú roly jasný význam, či ich priradenie zodpovedá zodpovednostiam a či každá citlivá operácia vynucuje rovnaké pravidlá pre danú rolu.

Riadenie prístupu na základe rolí, bežne označované skratkou RBAC, spája používateľov a služby s oprávneniami prostredníctvom pomenovaných rolí. Namiesto priameho prideľovania každého oprávnenia každej identite systém definuje roly, ako napríklad člen, manažér alebo administrátor, a každej roli priradí súbor povolených operácií.

Ako RBAC reprezentuje oprávnenia

Návrh RBAC obsahuje tri odlišné vzťahy: identity získavajú roly, roly obsahujú oprávnenia a oprávnenia povoľujú operácie nad prostriedkami. Zachovanie transparentnosti týchto vzťahov umožňuje kontrolovať prístup bez toho, aby bolo potrebné rekonštruovať samostatné pravidlo pre každý účet.

Názov roly je iba označením. Jej skutočný význam vyplýva z oprávnení vynucovaných serverom. Stránka skrytá pred bežným členom nepredstavuje obmedzenie, ak základná požiadavka akceptuje reláciu daného člena.

Element RBACOtázka pri auditeDôkaz v kóde alebo dátach
IdentitaKto získava prístup?Používateľ, servisný účet, relácia
RolaAká zodpovednosť je reprezentovaná?Záznam o roli alebo claim v tokene
OprávnenieKtorá operácia je povolená?Pravidlo, middleware, kontrola v handleri
PriradeniePrečo identita drží danú rolu?Členstvo alebo pravidlo poskytovania prístupu

Kde vygenerované systémy zlyhávajú

Rýchly vývoj funkcií môže vytvoriť viacero verzií tej istej roly. Jedna cesta overuje rolu admin, druhá owner a tretia pristupuje k akémukoľvek autentifikovanému používateľovi ako k internému personálu. Rozhranie sa môže pre účet vývojára stále správať podľa očakávaní, zatiaľ čo iné priradenia vedú k odlišným cestám.

Audit softvéru vytvoreného pomocou AI porovnáva model rolí s každou citlivou operáciou. Overuje tiež, či staré roly zostávajú priraditeľné, či servisné účty nededia ľudské oprávnenia a či sa zmena roly prejaví v aktívnych reláciách.

Medzi bežné zistenia patria:

  • Prekrývanie rolí: Dva názvy nesú takmer identické oprávnenia, ale menia sa nezávisle.
  • Implicitné privilégium: Cesta predpokladá rolu na základe toho, kde sa zobrazuje v rozhraní.
  • Zastarané priradenie: Používateľ si ponechá prístup aj po zmene tímu alebo zodpovednosti.
  • Široká administrácia: Jedna rola spája nesúvisiace prevádzkové a dátové oprávnenia.
  • Chýbajúce testy zamietnutia: Testy overujú povolené akcie, ale nikdy netestujú správanie inej roly.

RBAC a kontextové pravidlá

Roly fungujú dobre, ak je zodpovednosť stabilná a povolené akcie sa dajú jasne pomenovať. Niektoré rozhodnutia však závisia aj od konkrétneho záznamu, tenanta, stavu procesu alebo prostredia. Tieto podmienky patria do riadenia prístupu na základe atribútov alebo do špecifickej kontroly prostriedkov, a nie do rastúceho súboru úzko pomenovaných rolí.

Audit zaznamenáva, ktoré rozhodnutia sú založené na rolách a ktoré si vyžadujú dodatočný kontext. Táto hranica je dôležitá, pretože správna rola môže stále požiadať o záznam nesprávneho zákazníka.

Dôkaz, že model je vynucovaný

Užitočná kontrola začína operáciami, ktoré menia prístup, peniaze, zákaznícke dáta alebo konfiguráciu. Pri každej operácii sleduje rozhodnutie na strane servera a testuje ho s identitami s rôznymi rolami. Následne preveruje priradenie a odobranie rolí, ktoré sú samy osebe citlivými operáciami.

Toto je súčasť inžinierskej disciplíny stojacej za softvérom pripraveným na nasadenie. Výstupom je mapa oprávnení: definície rolí, cesty priradenia, vynucované operácie a medzery, kde implementácia používa iné pravidlo.