Roller och behörighetsomfattning
OpenFactory lagrar oberoende roller på organisations-, unit- och teamnivå. Ett rollnamn beskriver ett omfång; det är inte en universell behörighet som automatiskt gäller varje API eller varje produktfunktion.
Omfångsmodell
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userOrganisationsmedlemskap är den yttre gränsen. En användare måste vara organisationsmedlem innan en administratör kan lägga till hen i units eller teams. Medlemskap kontrolleras separat på varje nivå; dra inte slutsats om unit- eller teamroll utifrån en organisationsroll som visas i annat sammanhang.
Organisationsroller
Det nuvarande organization-management API:t tillämpar dessa behörigheter:
| Åtgärd | Owner | Admin | Member |
|---|---|---|---|
| Visa organisation, medlemmar, groups, units och teams | Ja | Ja | Ja |
| Redigera organisationsnamn eller -beskrivning | Ja | Ja | Nej |
| Skapa, redigera eller ta bort groups och hantera groupmedlemmar | Ja | Ja | Nej |
| Bjud in eller ta bort vanliga medlemmar | Ja | Ja | Nej |
| Ändra roller för vanliga member/admin | Ja | Ja | Nej |
| Bjud in eller befordra till owner | Ja | Nej | Nej |
| Ändra eller ta bort befintlig owner | Ja | Nej | Nej |
| Skapa eller ta bort units | Ja | Ja | Nej |
| Ta bort organisationen | Ja | Nej | Nej |
| Lämna organisationen | Ja, om inte enda owner | Ja | Ja |
En organisation kan ha fler än en owner. API:t hindrar den enda owner från att lämna
tills det finns en annan owner eller organisationen tas bort. Det finns ingen separat
åtgärd « transfer ownership » i detta API; en owner sätter en annan medlems roll till
owner och kan sedan ändra eller ta bort den tidigare owner enligt avsikt.
Unitroller
Organisations-owners och -admins kan hantera varje unit. Inom en unit ger det nuvarande
organization-management API:t unit_admin följande administrativa åtgärder:
- redigera unit;
- lägga till, ta bort och ändra unit-medlemsroller;
- skapa, redigera och ta bort teams i den unit;
- lägga till och hantera teammedlemmar i den unit.
Endast organisations-owner eller -admin kan ta bort själva unit.
base_creator, base_approver och unit-member är lagrade rolletiketter för policy
kring base-image-workflows. Organization CRUD-rutterna visar inte i sig att varje
create-, approve- eller deployment-åtgärd någon annanstans tillämpar dessa etiketter.
Kontrollera auktoriseringsbeteendet i den konkreta build- eller approval-workflow innan
du litar på den som kontroll.
Teamroller
Organisations-owners/admins och unit_admin i den överordnade unit kan hantera
teammedlemskap. En team_lead kan:
- redigera teamnamn eller -beskrivning;
- lägga till och ta bort teammedlemmar;
- ändra teammedlemsroller.
En team_lead kan inte ta bort teamet via det nuvarande organization API; den åtgärden
är reserverad för organisations-owner/admin eller överordnad unit_admin.
variant_creator, variant_deployer och variant_user uttrycker avsedda
ansvarsområden i variant-workflows. Läs dem inte som bevis att varje variant-endpoint
tillämpar en fullständig create/edit/deploy-matris. Testa exakt workflow och denied paths
i den utrullade versionen.
Groups skiljer sig
Groups är delningskollektioner på organisationsnivå, inte ytterligare en rollhierarki. Owners och admins skapar groups och hanterar groupmedlemskap; alla organisationsmedlemmar kan lista groups och deras medlemmar. Groupmedlemskap gör inte en användare till organisationsadmin, unit-admin eller team lead.
Byta roll på ett säkert sätt
- Bekräfta målorganisation, unit eller team.
- Anteckna användarens nuvarande effektiva medlemskap på alla tre nivåer.
- Gör en rolländring.
- Testa både en tillåten och en nekad åtgärd med användarens egen session.
- Kontrollera att cachat UI-tillstånd och befintliga sessioner speglar ändringen.
- Behåll auditpost utanför rolletiketten om er policy kräver det.
Att byta etikett utan denied-path-test räcker inte som bevis att least privilege tillämpas.
Vanliga kantfall
- En admin kan inte befordra någon till owner eller ändra en befintlig owners roll.
- En användare kan inte läggas till i unit eller team förrän hen tillhör organisationen.
- Unit- och teammedlemmar kan ta bort sig själva; organisationsmedlemskap kvarstår om det inte tas bort separat.
- När organisationsmedlemskap tas bort bör ni i er release kontrollera inverkan på inaktuella unit-, team-, group-, share- och sessionseffekter.
- Färger på UI-märken är presentation, inte säkerhetskontroll. Lita på server-side auktorisation och denied-path-tester.