Role a rozsah oprávnění
OpenFactory ukládá nezávislé role na úrovni organizace, unit a týmu. Název role popisuje rozsah; není to univerzální oprávnění, které by se automaticky vztahovalo na každé API nebo každou funkci 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Členství v organizaci je vnější hranice. Uživatel musí být členem organizace, než ho administrátor může přidat do unit nebo týmu. Členství se kontroluje nezávisle na každé úrovni; neodvozujte roli unit nebo týmu z organizační role zobrazené v jiném kontextu.
Organizační role
Aktuální API pro správu organizace vynucuje tato oprávnění:
| Operace | Owner | Admin | Member |
|---|---|---|---|
| Zobrazit organizaci, členy, groups, units a týmy | Ano | Ano | Ano |
| Upravit název nebo popis organizace | Ano | Ano | Ne |
| Vytvořit, upravit nebo smazat groups a spravovat členy group | Ano | Ano | Ne |
| Pozvat nebo odebrat běžné členy | Ano | Ano | Ne |
| Změnit role běžných member/admin | Ano | Ano | Ne |
| Pozvat nebo povýšit na owner | Ano | Ne | Ne |
| Změnit nebo odebrat stávajícího owner | Ano | Ne | Ne |
| Vytvořit nebo smazat units | Ano | Ano | Ne |
| Smazat organizaci | Ano | Ne | Ne |
| Opustit organizaci | Ano, pokud není jediný owner | Ano | Ano |
Organizace může mít více než jednoho owner. API zabrání odchodu jediného owner,
dokud neexistuje jiný owner nebo organizace není smazána. V tomto API není
samostatná akce „transfer ownership“; owner změní roli jiného člena na owner,
poté může podle potřeby změnit nebo odebrat předchozího owner.
Role unit
Owner a admin organizace mohou spravovat každý unit. V rámci unit aktuální API
pro správu organizace uděluje unit_admin tyto administrativní operace:
- upravit unit;
- přidávat, odebírat a měnit role členů unit;
- vytvářet, upravovat a mazat týmy v tomto unit;
- přidávat a spravovat členy týmu v tomto unit.
Samotný unit smazat může jen owner nebo admin organizace.
base_creator, base_approver a unit member jsou uložené popisky rolí pro
politiku workflow base image. Trasy CRUD organizace samy o sobě nedokazují, že
každá akce vytvoření, schválení nebo nasazení jinde tyto popisky vynucuje. Před
spoléháním na ně jako na kontrolu ověřte chování autorizace konkrétního workflow
build nebo schválení.
Role týmu
Owner/admin organizace a unit_admin nadřazeného unit mohou spravovat členství
v týmu. team_lead může:
- upravit název nebo popis týmu;
- přidávat a odebírat členy týmu;
- měnit role členů týmu.
team_lead nemůže smazat tým přes aktuální organizační API; tato operace je
vyhrazena owner/admin organizace nebo nadřazenému unit_admin.
variant_creator, variant_deployer a variant_user vyjadřují zamýšlené
odpovědnosti ve workflow variant. Nepovažujte je za důkaz, že každý endpoint
variant vynucuje úplnou matici create/edit/deploy. Otestujte přesné workflow
a zamítnuté cesty ve nasazené verzi.
Groups jsou jiné
Groups jsou sdílené kolekce na úrovni organizace, ne další hierarchie rolí. Owner a admin vytvářejí groups a spravují členství v group; všichni členové organizace mohou vypsat groups a jejich členy. Členství v group z uživatele neudělá admina organizace, admina unit ani team lead.
Bezpečná změna role
- Potvrďte cílovou organizaci, unit nebo tým.
- Zaznamenejte aktuální efektivní členství uživatele ve všech třech rozsazích.
- Proveďte jednu změnu role.
- Otestujte povolenou i zamítnutou operaci v relaci tohoto uživatele.
- Ověřte, že cache UI a existující relace změnu odrážejí.
- Ponechte auditní záznam mimo popisek role, pokud to vaše politika vyžaduje.
Změna popisku bez testu zamítnuté cesty není dostatečný důkaz vynucení nejmenších oprávnění.
Běžné hraniční případy
- Admin nemůže nikoho povýšit na owner ani změnit roli stávajícího owner.
- Uživatele nelze přidat do unit nebo týmu, dokud nepatří do organizace.
- Členové unit a týmu se mohou odebrat sami; členství v organizaci zůstává, pokud ho neodeberete zvlášť.
- Po odebrání členství v organizaci ověřte ve vaší verzi zastaralé efekty na unit, tým, group, share a relace.
- Barvy odznaků v UI jsou prezentace, ne bezpečnostní kontrola. Spoléhejte na autorizaci na straně serveru a testy zamítnutých cest.