Skip to Content
OrganizationsRole a rozsah oprávnění

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í:

OperaceOwnerAdminMember
Zobrazit organizaci, členy, groups, units a týmyAnoAnoAno
Upravit název nebo popis organizaceAnoAnoNe
Vytvořit, upravit nebo smazat groups a spravovat členy groupAnoAnoNe
Pozvat nebo odebrat běžné členyAnoAnoNe
Změnit role běžných member/adminAnoAnoNe
Pozvat nebo povýšit na ownerAnoNeNe
Změnit nebo odebrat stávajícího ownerAnoNeNe
Vytvořit nebo smazat unitsAnoAnoNe
Smazat organizaciAnoNeNe
Opustit organizaciAno, pokud není jediný ownerAnoAno

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

  1. Potvrďte cílovou organizaci, unit nebo tým.
  2. Zaznamenejte aktuální efektivní členství uživatele ve všech třech rozsazích.
  3. Proveďte jednu změnu role.
  4. Otestujte povolenou i zamítnutou operaci v relaci tohoto uživatele.
  5. Ověřte, že cache UI a existující relace změnu odrážejí.
  6. 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.