Roolit ja käyttöoikeuksien laajuus
OpenFactory tallentaa itsenäiset roolit organisaatio-, unit- ja tiimitasolla. Roolin nimi kuvaa laajuutta; se ei ole yleinen käyttöoikeus, joka koskee automaattisesti jokaista API:a tai tuoteominaisuutta.
Laajuusmalli
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userOrganisaatiojäsenyys on ulompi raja. Käyttäjän on oltava organisaation jäsen, ennen kuin ylläpitäjä voi lisätä hänet unitteihin tai tiimeihin. Jäsenyys tarkistetaan erikseen jokaisella tasolla; älä päättele unit- tai tiimiroolia organisaatioroolista, joka näkyy toisessa kontekstissa.
Organisaatioroolit
Nykyinen organization-management API pakottaa nämä käyttöoikeudet:
| Toiminto | Owner | Admin | Member |
|---|---|---|---|
| Näytä organisaatio, jäsenet, groups, unitit ja tiimit | Kyllä | Kyllä | Kyllä |
| Muokkaa organisaation nimeä tai kuvausta | Kyllä | Kyllä | Ei |
| Luo, muokkaa tai poista groups ja hallitse group-jäseniä | Kyllä | Kyllä | Ei |
| Kutsu tai poista tavallisia jäseniä | Kyllä | Kyllä | Ei |
| Muuta tavallisten member/admin-roolien rooleja | Kyllä | Kyllä | Ei |
| Kutsu tai ylennä owneriksi | Kyllä | Ei | Ei |
| Muuta tai poista olemassa oleva owner | Kyllä | Ei | Ei |
| Luo tai poista unitteja | Kyllä | Kyllä | Ei |
| Poista organisaatio | Kyllä | Ei | Ei |
| Poistu organisaatiosta | Kyllä, paitsi jos ainoa owner | Kyllä | Kyllä |
Organisaatiolla voi olla useampi kuin yksi owner. API estää ainoan ownerin
poistumisen, kunnes on toinen owner tai organisaatio poistetaan. Tässä API:ssa
ei ole erillistä toimintoa « transfer ownership »; owner asettaa toisen jäsenen
rooliksi owner ja voi sitten muuttaa tai poistaa edellisen ownerin tarkoituksen mukaan.
Unit-roolit
Organisaation ownerit ja adminit voivat hallita jokaista unitia. Unitin sisällä
nykyinen organization-management API antaa unit_admin-roolille nämä hallintotoiminnot:
- muokkaa unitia;
- lisää, poista ja muuta unit-jäsenrooleja;
- luo, muokkaa ja poista tiimejä kyseisessä unitissa;
- lisää ja hallitse tiimin jäseniä kyseisessä unitissa.
Vain organisaation owner tai admin voi poistaa itse unitin.
base_creator, base_approver ja unitin member ovat tallennettuja roolimerkintöjä
base-image-workflow -käytännölle. Organization CRUD -reitit eivät itsessään todista,
että jokainen create-, approve- tai deployment-toiminto muualla pakottaa nämä merkinnät.
Tarkista konkreettisen build- tai approval-workflowin valtuutuskäyttäytyminen ennen
kuin luotat siihen kontrollina.
Tiimiroolit
Organisaation ownerit/adminit ja yläunitin unit_admin voivat hallita tiimijäsenyyttä.
team_lead voi:
- muokata tiimin nimeä tai kuvausta;
- lisätä ja poistaa tiimin jäseniä;
- muuttaa tiimin jäsenrooleja.
team_lead ei voi poistaa tiimiä nykyisen organization API:n kautta; toiminto on
varattu organisaation owner/adminille tai yläunitin unit_admin-roolille.
variant_creator, variant_deployer ja variant_user kuvaavat tarkoitettuja
vastuita variant-workflowissa. Älä tulkitse niitä todisteeksi siitä, että jokainen
variant-endpoint pakottaa täyden create/edit/deploy -matriisin. Testaa tarkka workflow
ja denied paths käyttöönotetussa versiossa.
Groups on eri asia
Groups ovat organisaatiotason jakokokoelmia, eivät toinen roolihierarkia. Ownerit ja adminit luovat groups ja hallitsevat group-jäsenyyttä; kaikki organisaation jäsenet voivat listata groups ja niiden jäsenet. Group-jäsenyys ei tee käyttäjästä organisaation adminia, unit-adminia tai team leadia.
Roolin turvallinen vaihtaminen
- Vahvista kohdeorganisaatio, unit tai tiimi.
- Kirjaa käyttäjän nykyiset voimassa olevat jäsenyydet kaikilla kolmella tasolla.
- Tee yksi roolimuutos.
- Testaa sekä sallittu että evätty toiminto kyseisen käyttäjän omalla istunnolla.
- Tarkista, että välimuistissa oleva UI-tila ja olemassa olevat istunnot heijastavat muutosta.
- Säilytä auditointitietue roolimerkinnän ulkopuolella, jos käytäntönne sitä vaatii.
Merkinnän vaihtaminen ilman denied-path-testiä ei riitä todisteeksi least privilegen pakottamisesta.
Yleisiä reunatapauksia
- Admin ei voi ylentää ketään owneriksi eikä muuttaa olemassa olevan ownerin roolia.
- Käyttäjää ei voi lisätä unitiin tai tiimiin, ennen kuin hän kuuluu organisaatioon.
- Unit- ja tiimin jäsenet voivat poistaa itsensä; organisaatiojäsenyys säilyy, ellei sitä poisteta erikseen.
- Organisaatiojäsenyyden poistamisen yhteydessä tarkista julkaisussanne vanhentuneet unit-, tiimi-, group-, share- ja istuntovaikutukset.
- UI-merkkien värit ovat esitystä, eivät turvallisuuskontrollia. Luota aina palvelinpuolen valtuutukseen ja denied-path-testeihin.