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_userOrganisatielidmaatschap 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:
| Bewerking | Owner | Admin | Member |
|---|---|---|---|
| Organisatie, leden, groups, units en teams bekijken | Ja | Ja | Ja |
| Organisatienaam of -beschrijving bewerken | Ja | Ja | Nee |
| Groups aanmaken, bewerken of verwijderen en groupleden beheren | Ja | Ja | Nee |
| Gewone leden uitnodigen of verwijderen | Ja | Ja | Nee |
| Rollen van gewone member/admin wijzigen | Ja | Ja | Nee |
| Een owner uitnodigen of promoveren | Ja | Nee | Nee |
| Bestaande owner wijzigen of verwijderen | Ja | Nee | Nee |
| Units aanmaken of verwijderen | Ja | Ja | Nee |
| De organisatie verwijderen | Ja | Nee | Nee |
| De organisatie verlaten | Ja, tenzij enige owner | Ja | Ja |
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
- Bevestig de doelorganisatie, unit of team.
- Noteer de huidige effectieve lidmaatschappen van de gebruiker op alle drie de niveaus.
- Voer één rolwijziging door.
- Test zowel een toegestane als een geweigerde handeling met de sessie van die gebruiker.
- Controleer of gecachte UI-status en bestaande sessies de wijziging weerspiegelen.
- 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.