Role Based Access Control¶
Toegang tot systemen moet geregeld worden. Voor elke nieuwe gebruiker kan je niet opnieuw gaan bepalen welke rechten deze gebruiker nodig heeft omdat dit te veel onnodig werk oplevert. In plaats daarvan bepaal je een aantal rollen. Nieuwe gebruikers krijgen een rol, soms meer, toegewezen. Dit kan afhankelijk zijn van veel verschillende omstandigheden. Het beheren van rollen voor toegang heet Role Based Access Control (RBAC).
Rollen¶
Een rol is een verzameling van rechten onder één naam. Gebruikers kunnen een rol toebedeeld krijgen en die geeft ze vervolgens een aantal rechten. In meer complexe systemen kan je ook rollen combineren tot nieuwe rollen.
Een voorbeeld; de rol “System administrator” is vaak de eerste rol die wordt uitgedeeld in een nieuw systeem aan een aantal mensen die het systeem gaan beheren. Met beheren bedoelen we het maken, veranderen en verwijderen van onderdelen van het systeem. Zij krijgen dan rechten om functies of modules aan en uit te zetten, om het systeem te configureren, om nieuwe rollen te beheren, om gebruikers te beheren.
Zo’n nieuwe rol zou dan “Contentbeheerder” kunnen zijn. Mensen die deze rol krijgen, kunnen nieuwe content aanmaken, bij voorbeeld in een online verkoopsysteem. Ze mogen de prijzen van de producten beheren, maar verder niks. Ze beheren geen rollen, geen gebruikers en zeker geen verkoop- of bestellingsgegevens.
Iemand kan ook 2 rollen hebben. Als een organisatie wat kleiner is, komt dat wat sneller voor. Iemand die zowel “System administrator” als “Contentbeheerder” is, kan alles doen wat bij beide rollen hoort.
In sommige situaties is het niet wenselijk dat bepaalde rollen worden gecombineerd. Iemand met een rol om bestellingen in een systeem te zetten en goed te keuren zou een bestelling voor een product naar diens eigen adres kunnen aanmaken en tegelijk ook goedkeuren. Bij het analyseren van bedrijfsprocessen is het belangrijk om dergelijke problemen voor te zijn. De vakgebieden Risicomanagement
en IT Security
gaan hierover.
Rolbepalende factoren¶
Welke rol iemand kan krijgen kan aan veel verschillende factoren liggen. In grote organisaties met veel afdelingen en werklocaties en grote belangen zullen systemen bestaan met veel verschillende factoren in één systeem. * Functie, * Werklocatie, * Senioriteit, * Soort gegevens * Speciale bevoegdheden of diploma’s
Deze onderdelen worden hier stuk voor stuk uitgelegd.
Functie¶
Mensen met hogere functies kunnen doorgaans meer toegang hebben tot gegevens en functies. Ze zijn verantwoordelijk en moeten dus werk doen dat grote gevolgen heeft. Het aanmaken van een nieuwe afdeling in de organisatie en in de systemen is bij voorbeeld een grote wijziging. Mensen in hogere functies hebben niet per definitie alle toegang. Sommige activiteiten wil je over laten aan medewerkers zodat je als manager er inzicht in hebt en hierop kan controleren zonder er zelf in te zitten werken.
Werklocatie¶
In organisaties met meerdere vestigingen en met werk in verschillende landen kan de data per locatie beschikbaar zijn. Niet alleen is dit belangrijk vanwege verantwoordelijkheden (de financieel beheerder van één locatie moet niet gaan werken in financiële gegevens van een andere locatie), het kan ook handig zijn omdat je dan niet door heel veel informatie hoeft te navigeren om te komen waar je wil zijn.
Senioriteit¶
In diverse organisaties maakt het uit als je ergens langer werkt. Dit betekent namelijk dat je meer ervaring hebt op het gebied en daardoor moeilijker keuzes beter kan maken. Zo kan het zijn dat een “manager” een voorstel kan doen en een “senior manager” dat voorstel kan goedkeuren. Het kan ook zijn dat een “software engineer” een stuk code kan schrijven dat een “senior software engineer” moet goedkeuren.
Soort gegevens¶
Informatiesystemen staan vol met allerlei soorten informatie, waarvan het ene deel veel gevoeliger kan zijn dan het andere. Strategische beslissingen van een organisatie moeten vaak zeer goed beschermd worden omdat het op de minuut kan uitmaken waar en bij wie het terecht komt. Denk bij voorbeeld aan een nieuwe investering voor een beurgenoteerd bedrijf. Het is dus belangrijk dat per gegevenssoort wordt bepaald welke rol daar welke toegang toe mag hebben en zelfs wanneer.
Speciale bevoegdheden of diploma’s¶
Sommige mensen hebben een bijzondere plek in een organisatie. Op basis van die plek moeten zijn toegang krijgen tot bijzondere gegevens. Een geaccrediteerd auditor bij voorbeeld kan inzicht krijgen in auditrapporten of interviewnotities waar maar weinigen toegang tot hebben als ze zeer gevoelig zijn van aard. Denk bij voorbeeld aan een onderzoek naar fraude door een CEO.
Rollen voor systemen¶
Niet alleen mensen kunnen toegang krijgen tot systemen, ook andere systemen kunnen dat. Een database kan toegangsgegevens bevatten voor verschillende soorten toegang en het kan zijn dat verschillende systemen wel en andere systemen niet tot deze database toegang mogen hebben. Een systeem kan dan ook geprogrammeerd zijn om in te loggen in een ander systeem of in een database. Daarvoor zijn toegangsgegevens opgeslagen voor een principal
. Dit is een naam voor een gebruikersaccount dat net zo goed van een mens als van een systeem kan zijn.
Soorten toegang¶
Wanneer iemand toegang heeft tot een systeem, wil dat nog niet zeggen dat deze er alles in kan doen. Ook weer afhankelijk van de factoren kan iemand er heel veel of heel weinig.
De basisverdeling die je in veel systemen terug ziet komen is herkenbaar in CRUD
, een acroniem over het behandelen van data in een database;
* Create; de gebruiker mag nieuwe gegevens maken
* Read; de gebruiker ma bestaande gegevens inzien
* Update; de gebruiker ma bestaande gegevens veranderen
* Delete; de gebruiker ma bestaande gegevens verwijderen
Hoeveel van de data toegankelijk is voor de gebruiker, is bepaald per tabel (in relationele databases). De ene rol kan misschien maar in één tabel iets zien of doen, de andere in alle. Een aantal voorbeelden kunnen zijn; * De administrator; dit is een databasebeheerder die alle tabellen rondom gebruikers en rollen mag zien. Wellicht kan deze nieuwe gebruikersaccounts aanmaken en rollen toewijzen. Ook kan deze nieuwe rollen definiëren. Misschien zijn persoonsgegevens weer afgeschermd, gegeven dat deze in een aparte tabel zijn opgeslagen. * De Financieel beheerder; dit is iemand die verantwoordelijk is voor de financiële zaken van de organisatie en dus alle financiële tabellen in mag zien en veranderen. Transactiegevens van banken worden hier soms buitengelaten omdat deze via automatische interacties met de bank dagelijks worden ingelezen. Maar dan heeft deze persoon wel leesrechten tot deze data. * Een medewerker Persooneelszaken; dit is iemand die de persoonsgegevens van personeel bijhoudt en verandert wanneer nodig. Deze persoon heeft dan weer geen rechten om allerlei financiële data te beheren, hoogstens kan deze inzien hoe het staat met salarisbetalingen.
Verwijderen van rollen¶
Uiteindelijk moeten rollen ook verwijderd worden uit gebruikersaccounts. Dat kan gebeuren wanneer iemand vertrekt bij de organisatie, of wanneer deze van functie verandert of op een andere locatie gaat werken. Dit wordt in kleinere organisaties nog wel eens vergeten. Dan kan het zijn dat iemand die er lang werkt heel veel rollen heeft. In goed georganiseerde organisaties zijn er bedrijfsprocessen die dit soort veranderingen beheren. Een wijziging van functie start dan wijzigingen in toewijzing van rollen. Als iemand vertrekt ook.