Vaidmenys ir teisių apimtis
OpenFactory saugo nepriklausomus vaidmenis organization, unit ir team lygmenyse. Vaidmens pavadinimas apibūdina apimtį; tai nėra universalus leidimas, kuris automatiškai taikomas kiekvienai API ar produkto funkcijai.
Apimties modelis
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userOrganization narystė yra išorinė riba. Vartotojas turi būti organization narys, kol administratorius gali jį pridėti prie vieno iš jos units ar teams. Narystė tikrinama nepriklausomai kiekviename lygyje; neišveskite unit ar team vaidmens iš organization vaidmens, rodomo kitame kontekste.
Organization vaidmenys
Dabartinė organization-management API taiko šias teises:
| Operacija | Owner | Admin | Member |
|---|---|---|---|
| Peržiūrėti organization, narius, groups, units ir teams | Taip | Taip | Taip |
| Redaguoti organization pavadinimą ar aprašą | Taip | Taip | Ne |
| Kurti, redaguoti ar šalinti groups ir valdyti group narius | Taip | Taip | Ne |
| Kviesti ar šalinti paprastus narius | Taip | Taip | Ne |
| Keisti paprastų member/admin vaidmenų | Taip | Taip | Ne |
| Kviesti ar paaukštinti owner | Taip | Ne | Ne |
| Keisti ar šalinti esamą owner | Taip | Ne | Ne |
| Kurti ar šalinti units | Taip | Taip | Ne |
| Šalinti organization | Taip | Ne | Ne |
| Palikti organization | Taip, nebent vienintelis owner | Taip | Taip |
Organization gali turėti daugiau nei vieną owner. API neleidžia vieninteliam
owner palikti organization, kol neatsiranda kitas owner arba organization
neištrinama. Šioje API nėra atskiro „transfer ownership“ veiksmo; owner
pakeičia kito nario vaidmenį į owner, tada gali pakeisti ar pašalinti
ankstesnį owner pagal poreikį.
Unit vaidmenys
Organization owner ir admin gali valdyti kiekvieną unit. Unit viduje dabartinė
organization-management API suteikia unit_admin šias administracines operacijas:
- redaguoti unit;
- pridėti, šalinti ir keisti unit narių vaidmenis;
- kurti, redaguoti ir šalinti teams toje unit;
- pridėti ir valdyti team narius toje unit.
Tik organization owner ar admin gali ištrinti pačią unit.
base_creator, base_approver ir unit member yra saugomos vaidmenų
etiketės base-image workflow policy. Organization CRUD maršrutai patys
neįrodo, kad kiekvienas create, approve ar deployment veiksmas kitur
privalomai taiko tas etiketes. Prieš remdamiesi jomis kaip kontrole,
patikrinkite konkretaus build ar approval workflow autorizacijos elgseną.
Team vaidmenys
Organization owner/admin ir tėvinės unit unit_admin gali valdyti team
narystę. team_lead gali:
- redaguoti team pavadinimą ar aprašą;
- pridėti ir šalinti team narius;
- keisti team narių vaidmenis.
team_lead negali ištrinti team per dabartinę organization API; ši operacija
rezervuota organization owner/admin ar tėvinės unit unit_admin.
variant_creator, variant_deployer ir variant_user apibūdina numatytas
variant workflow atsakomybes. Jų nereikėtų skaityti kaip įrodymo, kad kiekvienas
variant endpoint taiko pilną create/edit/deploy matricą. Išbandykite tikslų
workflow ir atmestus kelius diegtoje versijoje.
Groups skiriasi
Groups yra organization lygio bendrinimo rinkiniai, o ne dar viena vaidmenų hierarchija. Owner ir admin kuria groups ir valdo group narystę; visi organization nariai gali išvardyti groups ir jų narius. Group narystė neperverčia vartotojo į organization admin, unit admin ar team lead.
Saugus vaidmens keitimas
- Patvirtinkite tikslinę organization, unit ar team.
- Užfiksuokite vartotojo dabartines veiksmingas narystes visose trijose apimtyse.
- Taikykite vieną vaidmens pakeitimą.
- Išbandykite ir leistiną, ir atmestą operaciją to vartotojo sesija.
- Patikrinkite, ar talpykloje esanti UI būsena ir esamos sesijos atspindi pakeitimą.
- Jei policy reikalauja, saugokite audito įrašą nepriklausomai nuo vaidmens etiketės.
Etiketės keitimas be atmesto kelio testo nėra pakankamas įrodymas, kad taikomas mažiausios privilegijos principas.
Dažni kraštiniai atvejai
- Admin negali nieko paaukštinti iki owner ar keisti esamo owner vaidmens.
- Vartotojo negalima pridėti prie unit ar team, kol jis nepriklauso organization.
- Unit ir team nariai gali pašalinti save; organization narystė lieka, nebent atskirai pašalinama.
- Pašalinus organization narystę, savo versijoje patikrinkite pasenusias unit, team, group, share ir sesijų pasekmes.
- UI ženklelių spalvos yra pateikimas, ne saugumo kontrolė. Visada remkitės serverio autorizacija ir atmestų kelių testais.