Role a rozsah oprávnení
OpenFactory ukladá nezávislé role na úrovni organizácie, unit a tímu. Názov role popisuje rozsah; nie je to univerzálne oprávnenie, ktoré by sa automaticky vzťahovalo na každé API alebo každú funkciu produktu.
Model rozsahu
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userČlenstvo v organizácii je vonkajšia hranica. Používateľ musí byť členom organizácie, skôr než ho administrátor môže pridať do unit alebo tímu. Členstvo sa kontroluje nezávisle na každej úrovni; neodvodzujte rolu unit alebo tímu z organizačnej role zobrazenej v inom kontexte.
Organizačné role
Aktuálne API na správu organizácie vynucuje tieto oprávnenia:
| Operácia | Owner | Admin | Member |
|---|---|---|---|
| Zobraziť organizáciu, členov, groups, units a tímy | Áno | Áno | Áno |
| Upraviť názov alebo popis organizácie | Áno | Áno | Nie |
| Vytvoriť, upraviť alebo zmazať groups a spravovať členov group | Áno | Áno | Nie |
| Pozvať alebo odobrať bežných členov | Áno | Áno | Nie |
| Zmeniť role bežných member/admin | Áno | Áno | Nie |
| Pozvať alebo povýšiť na owner | Áno | Nie | Nie |
| Zmeniť alebo odobrať existujúceho owner | Áno | Nie | Nie |
| Vytvoriť alebo zmazať units | Áno | Áno | Nie |
| Zmazať organizáciu | Áno | Nie | Nie |
| Opustiť organizáciu | Áno, ak nie je jediný owner | Áno | Áno |
Organizácia môže mať viac než jedného owner. API zabráni odchodu jediného owner,
kým neexistuje iný owner alebo organizácia nie je zmazaná. V tomto API nie je
samostatná akcia „transfer ownership“; owner zmení rolu iného člena na owner,
potom môže podľa potreby zmeniť alebo odobrať predchádzajúceho owner.
Role unit
Owner a admin organizácie môžu spravovať každý unit. V rámci unit aktuálne API
na správu organizácie udeľuje unit_admin tieto administratívne operácie:
- upraviť unit;
- pridávať, odoberať a meniť role členov unit;
- vytvárať, upravovať a mazať tímy v tomto unit;
- pridávať a spravovať členov tímu v tomto unit.
Samotný unit zmazať môže len owner alebo admin organizácie.
base_creator, base_approver a unit member sú uložené popisky rolí pre
politiku workflow base image. Trasy CRUD organizácie samy o sebe nedokazujú, že
každá akcia vytvorenia, schválenia alebo nasadenia inde tieto popisky vynucuje. Pred
spoliehaním sa na ne ako na kontrolu overte správanie autorizácie konkrétneho workflow
build alebo schválenia.
Role tímu
Owner/admin organizácie a unit_admin nadradeného unit môžu spravovať členstvo
v tíme. team_lead môže:
- upraviť názov alebo popis tímu;
- pridávať a odoberať členov tímu;
- meniť role členov tímu.
team_lead nemôže zmazať tím cez aktuálne organizačné API; táto operácia je
vyhradená owner/admin organizácie alebo nadradenému unit_admin.
variant_creator, variant_deployer a variant_user vyjadrujú zamýšľané
zodpovednosti vo workflow variant. Nepovažujte ich za dôkaz, že každý endpoint
variant vynucuje úplnú maticu create/edit/deploy. Otestujte presné workflow
a zamietnuté cesty v nasadenej verzii.
Groups sú iné
Groups sú zdieľané kolekcie na úrovni organizácie, nie ďalšia hierarchia rolí. Owner a admin vytvárajú groups a spravujú členstvo v group; všetci členovia organizácie môžu vypísať groups a ich členov. Členstvo v group z používateľa neurobí admina organizácie, admina unit ani team lead.
Bezpečná zmena role
- Potvrďte cieľovú organizáciu, unit alebo tím.
- Zaznamenajte aktuálne efektívne členstvá používateľa vo všetkých troch rozsahoch.
- Vykonajte jednu zmenu role.
- Otestujte povolenú aj zamietnutú operáciu v relácii tohto používateľa.
- Overte, že cache UI a existujúce relácie zmenu odrážajú.
- Ponechajte auditný záznam mimo popisku role, ak to vaša politika vyžaduje.
Zmena popisku bez testu zamietnutej cesty nie je dostatočný dôkaz vynútenia najmenších oprávnení.
Bežné hraničné prípady
- Admin nemôže nikoho povýšiť na owner ani zmeniť rolu existujúceho owner.
- Používateľa nemožno pridať do unit alebo tímu, kým nepatrí do organizácie.
- Členovia unit a tímu sa môžu odobrať sami; členstvo v organizácii zostáva, ak ho neodoberiete zvlášť.
- Po odobratí členstva v organizácii overte vo vašej verzii zastarané efekty na unit, tím, group, share a relácie.
- Farby odznakov v UI sú prezentácia, nie bezpečnostná kontrola. Spoliehajte sa na autorizáciu na strane servera a testy zamietnutých ciest.