Skip to Content
OrganizationsRoller och behörighetsomfattning

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_user

Organisationsmedlemskap ä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ärdOwnerAdminMember
Visa organisation, medlemmar, groups, units och teamsJaJaJa
Redigera organisationsnamn eller -beskrivningJaJaNej
Skapa, redigera eller ta bort groups och hantera groupmedlemmarJaJaNej
Bjud in eller ta bort vanliga medlemmarJaJaNej
Ändra roller för vanliga member/adminJaJaNej
Bjud in eller befordra till ownerJaNejNej
Ändra eller ta bort befintlig ownerJaNejNej
Skapa eller ta bort unitsJaJaNej
Ta bort organisationenJaNejNej
Lämna organisationenJa, om inte enda ownerJaJa

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

  1. Bekräfta målorganisation, unit eller team.
  2. Anteckna användarens nuvarande effektiva medlemskap på alla tre nivåer.
  3. Gör en rolländring.
  4. Testa både en tillåten och en nekad åtgärd med användarens egen session.
  5. Kontrollera att cachat UI-tillstånd och befintliga sessioner speglar ändringen.
  6. 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.