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 RBAC | Otázka pri audite | Dôkaz v kóde alebo dátach |
|---|---|---|
| Identita | Kto získava prístup? | Používateľ, servisný účet, relácia |
| Rola | Aká zodpovednosť je reprezentovaná? | Záznam o roli alebo claim v tokene |
| Oprávnenie | Ktorá operácia je povolená? | Pravidlo, middleware, kontrola v handleri |
| Priradenie | Preč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.