RBAC (role-based access control) is een manier om te bepalen wie wat mag in een applicatie, door rechten aan rollen te hangen in plaats van aan iedere persoon apart. Je maakt een handvol rollen, koppelt de juiste rechten aan elke rol en wijst mensen vervolgens een rol toe. Komt er iemand nieuw bij, dan geef je die simpelweg een rol in plaats van tientallen losse vinkjes aan te zetten.
Denk aan een hotel. De keycard van een schoonmaker opent de kamers, maar niet de kluisruimte. De kaart van de manager opent vrijwel alles. Niemand programmeert elke kaart van nul; de kaart draagt een rol, en die rol bepaalt welke deuren opengaan. Zo werkt RBAC ook, waardoor autorisatie consistent en goed te controleren blijft.
Dit is belangrijk omdat het alternatief, rechten per persoon uitdelen, snel een rommeltje wordt. Mensen wisselen van team, krijgen promotie of vertrekken, en oude rechten stapelen zich op. Met rollen pas je één definitie aan en is iedereen in die rol meteen bij. RBAC past ook mooi bij regels op databaseniveau zoals row-level security, zodat een accountmanager alleen zijn eigen klanten ziet.
Eén waarschuwing uit de praktijk: te veel rollen is ook een valkuil. Heb je eenmaal veertig bijna identieke rollen als “manager-noord” en “manager-noord-alleenlezen”, dan heb je het gedoe per persoon gewoon opnieuw uitgevonden, met extra stappen. Het gezonde patroon is een kleine set brede rollen plus een enkele uitzondering, af en toe nagelopen zodat niemand stilletjes toegang houdt die hij na een functiewissel niet meer nodig heeft.
Bij TopDevs zetten we RBAC vroeg in een project op, zodat de toegang netjes blijft terwijl het team en de app groeien, in plaats van een knoop te worden waar niemand aan durft te komen.