Skip to Content
OrganizationsRollen en machtigingsbereik

Rollen en machtigingsbereik

OpenFactory slaat onafhankelijke rollen op op organisatie-, unit- en teamniveau. Een rolnaam beschrijft een bereik; het is geen universele machtiging die automatisch voor elke API of elke productfunctie geldt.

Bereikmodel

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

Organisatielidmaatschap is de buitenste grens. Een gebruiker moet organisatielid zijn voordat een beheerder hem aan units of teams kan toevoegen. Lidmaatschap wordt op elk niveau apart gecontroleerd; leid geen unit- of teamrol af uit een organisatierol die in een andere context staat.

Organisatierollen

De huidige organization-management API handhaaft deze machtigingen:

BewerkingOwnerAdminMember
Organisatie, leden, groups, units en teams bekijkenJaJaJa
Organisatienaam of -beschrijving bewerkenJaJaNee
Groups aanmaken, bewerken of verwijderen en groupleden beherenJaJaNee
Gewone leden uitnodigen of verwijderenJaJaNee
Rollen van gewone member/admin wijzigenJaJaNee
Een owner uitnodigen of promoverenJaNeeNee
Bestaande owner wijzigen of verwijderenJaNeeNee
Units aanmaken of verwijderenJaJaNee
De organisatie verwijderenJaNeeNee
De organisatie verlatenJa, tenzij enige ownerJaJa

Een organisatie kan meer dan één owner hebben. De API voorkomt dat de enige owner vertrekt totdat er een andere owner is of de organisatie wordt verwijderd. Er is geen aparte actie « transfer ownership » in deze API; een owner zet de rol van een ander lid op owner en kan daarna de vorige owner wijzigen of verwijderen zoals bedoeld.

Unitrollen

Organisatie-owners en -admins kunnen elke unit beheren. Binnen een unit geeft de huidige organization-management API unit_admin deze beheerhandelingen:

  • de unit bewerken;
  • unit-lidrollen toevoegen, verwijderen en wijzigen;
  • teams in die unit aanmaken, bewerken en verwijderen;
  • teamleden in die unit toevoegen en beheren.

Alleen een organisatie-owner of -admin kan de unit zelf verwijderen.

base_creator, base_approver en unit-member zijn opgeslagen rollabels voor beleid rond base-image-workflows. De organization CRUD-routes bewijzen op zichzelf niet dat elke create-, approve- of deployment-actie elders die labels afdwingt. Controleer het autorisatiegedrag van de concrete build- of approval-workflow voordat u erop vertrouwt als controle.

Teamrollen

Organisatie-owners/admins en de unit_admin van de bovenliggende unit kunnen teamlidmaatschap beheren. Een team_lead kan:

  • teamnaam of -beschrijving bewerken;
  • teamleden toevoegen en verwijderen;
  • teamlidrollen wijzigen.

Een team_lead kan het team niet verwijderen via de huidige organization API; die handeling is voorbehouden aan een organisatie-owner/admin of de bovenliggende unit_admin.

variant_creator, variant_deployer en variant_user geven de bedoelde verantwoordelijkheden in variant-workflows weer. Lees ze niet als bewijs dat elk variant-endpoint een volledige create/edit/deploy-matrix afdwingt. Test de exacte workflow en denied paths in de uitgerolde release.

Groups zijn anders

Groups zijn sharing-collecties op organisatieniveau, geen extra rolhiërarchie. Owners en admins maken groups aan en beheren grouplidmaatschap; alle organisatieden kunnen groups en hun leden tonen. Grouplidmaatschap maakt een gebruiker geen organisatie-admin, unit-admin of team lead.

Een rol veilig wijzigen

  1. Bevestig de doelorganisatie, unit of team.
  2. Noteer de huidige effectieve lidmaatschappen van de gebruiker op alle drie de niveaus.
  3. Voer één rolwijziging door.
  4. Test zowel een toegestane als een geweigerde handeling met de sessie van die gebruiker.
  5. Controleer of gecachte UI-status en bestaande sessies de wijziging weerspiegelen.
  6. Bewaar een auditrecord buiten het rollabel als uw beleid dat vereist.

Een label wijzigen zonder denied-path-test is onvoldoende bewijs dat least privilege wordt afgedwongen.

Veelvoorkomende randgevallen

  • Een admin kan niemand promoveren tot owner of de rol van een bestaande owner wijzigen.
  • Een gebruiker kan niet aan een unit of team worden toegevoegd voordat hij bij de organisatie hoort.
  • Unit- en teamleden kunnen zichzelf verwijderen; organisatielidmaatschap blijft tenzij apart verwijderd.
  • Bij het verwijderen van organisatielidmaatschap moet u in uw release controleren op verouderde unit-, team-, group-, share- en sessie-effecten.
  • Kleuren van UI-badges zijn presentatie, geen beveiligingscontrole. Vertrouw op server-side autorisatie en denied-path-tests.