Skip to Content
OrganizationsRoller og tillatelsesomfang

Roller og tillatelsesomfang

OpenFactory lagrer uavhengige roller på organisasjons-, unit- og teamnivå. Et rollenavn beskriver et omfang; det er ikke en universell tillatelse som automatisk gjelder for hvert API eller hver produktfunksjon.

Omfangsmodell

organization membership: owner | admin | member └── unit membership: unit_admin | base_creator | base_approver | member └── team membership: team_lead | variant_creator | variant_deployer | variant_user

Organisasjonsmedlemskap er den ytre grensen. En bruker må være organisasjonsmedlem før en administrator kan legge vedkommende til i units eller teams. Medlemskap sjekkes separat på hvert nivå; ikke utled unit- eller teamrolle fra en organisasjonsrolle vist i en annen kontekst.

Organisasjonsroller

Det nåværende organization-management API håndhever disse tillatelsene:

HandlingOwnerAdminMember
Vise organisasjon, medlemmer, groups, units og teamsJaJaJa
Redigere organisasjonsnavn eller -beskrivelseJaJaNei
Opprette, redigere eller slette groups og administrere groupmedlemmerJaJaNei
Invitere eller fjerne vanlige medlemmerJaJaNei
Endre roller for vanlige member/adminJaJaNei
Invitere eller forfremme til ownerJaNeiNei
Endre eller fjerne eksisterende ownerJaNeiNei
Opprette eller slette unitsJaJaNei
Slette organisasjonenJaNeiNei
Forlate organisasjonenJa, med mindre eneste ownerJaJa

En organisasjon kan ha mer enn én owner. API-et hindrer den eneste owner i å forlate til det finnes en annen owner, eller organisasjonen slettes. Det finnes ingen separat handling « transfer ownership » i dette API-et; en owner setter en annen medlems rolle til owner, og kan deretter endre eller fjerne den forrige owner etter hensikt.

Unitroller

Organisasjons-owners og -admins kan administrere hver unit. Innenfor en unit gir det nåværende organization-management API unit_admin disse administrative handlingene:

  • redigere unit;
  • legge til, fjerne og endre unit-medlemsroller;
  • opprette, redigere og slette teams i den unit;
  • legge til og administrere teammedlemmer i den unit.

Kun organisasjons-owner eller -admin kan slette selve unit.

base_creator, base_approver og unit-member er lagrede rolleetiketter for policy for base-image-workflows. Organization CRUD-rutene beviser ikke i seg selv at hver create-, approve- eller deployment-handling andre steder håndhever disse etikettene. Kontroller autorisasjonsatferden i den konkrete build- eller approval-workflow før dere stoler på den som kontroll.

Teamroller

Organisasjons-owners/admins og unit_admin i overordnet unit kan administrere teammedlemskap. En team_lead kan:

  • redigere teamnavn eller -beskrivelse;
  • legge til og fjerne teammedlemmer;
  • endre teammedlemsroller.

En team_lead kan ikke slette teamet via det nåværende organization API; den handlingen er reservert for organisasjons-owner/admin eller overordnet unit_admin.

variant_creator, variant_deployer og variant_user uttrykker tiltenkte ansvarsområder i variant-workflows. Les dem ikke som bevis for at hvert variant-endpoint håndhever en full create/edit/deploy-matrise. Test nøyaktig workflow og denied paths i den utrullede versjonen.

Groups er annerledes

Groups er delingskolleksjoner på organisasjonsnivå, ikke enda en rollehierarki. Owners og admins oppretter groups og administrerer groupmedlemskap; alle organisasjonsmedlemmer kan liste groups og medlemmene deres. Groupmedlemskap gjør ikke en bruker til organisasjonsadmin, unit-admin eller team lead.

Endre rolle trygt

  1. Bekreft målorganisasjon, unit eller team.
  2. Noter brukerens nåværende effektive medlemskap på alle tre nivåer.
  3. Gjennomfør én rolleendring.
  4. Test både en tillatt og en avvist handling med brukerens egen økt.
  5. Kontroller at cachelagret UI-tilstand og eksisterende økter gjenspeiler endringen.
  6. Behold auditpost utenfor rolleetiketten hvis policyen deres krever det.

Å endre etikett uten denied-path-test er ikke tilstrekkelig bevis for at least privilege håndheves.

Vanlige kanttilfeller

  • En admin kan ikke forfremme noen til owner eller endre en eksisterende owners rolle.
  • En bruker kan ikke legges til i unit eller team før vedkommende tilhører organisasjonen.
  • Unit- og teammedlemmer kan fjerne seg selv; organisasjonsmedlemskap består med mindre det fjernes separat.
  • Ved fjerning av organisasjonsmedlemskap bør dere i deres versjon sjekke for utdaterte unit-, team-, group-, share- og økteeffekter.
  • Farger på UI-badges er presentasjon, ikke sikkerhetskontroll. Stol på server-side autorisasjon og denied-path-tester.