Functioneel #
Vanuit functioneel perspectief moeten een aantal taken en functies worden ingevuld om tot een complete toegangsoplossing te komen. We verdelen ze in twee groepen: runtime en beheer.
1. Runtime #
Onder runtime scharen we taken die nodig zijn om de regels toe te passen bij verwerkingen. Dit zijn allemaal geautomatiseerde taken, ze worden door software op de achtergrond uitgevoerd.
- Beslissingen afdwingen. Het zorgen dat genomen beslissingen ook gegarandeerd nageleefd worden.
- Beslissingen nemen. Op basis van alle informatie (subject, action, resource en context) en de beschikbare regels uitrekenen of het verzoek gehonoreerd, voorwaardelijk gehonoreerd of afgewezen moet worden.
- Beslissingen loggen. Vastleggen welke beslissingen genomen zijn, op een zodanige wijze dat de informatie later beschikbaar is voor verantwoording. Hierbij is het belangrijk dat er genoeg informatie is om de juistheid van beslissingen te controleren, en niet meer.
Deze functies worden bij elk verwerkingsverzoek aangeroepen. Daarom moeten deze snel afgehandeld kunnen worden.
2. Beheer #
De beheersfuncties zijn voor het opstellen en onderhouden van regels. Dit zijn ze:
- Beveiliging. Het beheer van toegangsregels heeft ook zijn eigen toegangsbeveiliging nodig. Daarvoor is een gedeeld of apart IAM systeem nodig, inclusief rollen, rechten en policies, waarmee beheerderstoegang beheerd kan worden.
- Regels opstellen. Het maken, aanpassen en verwijderen van regels. Dit kan een eigen editor, afgestemd op de policytaal, met veel hulpmiddelen zijn, of juist heel basaal alleen een manier om bestanden aan te nemen.
- Versiebeheer. Door de historie van regels op te slaan wordt het mogelijk achteraf te zien welke regels wanneer golden, en kunnen wijzigingen ook teruggedraaid worden.
- Testen. Opstellen van regels is in alle talen best lastig. Bovendien is het overzien van de gevolgen van aanpassingen op de hele set regels handmatig meestal niet te doen. Daarom is het nodig een testfaciliteit te hebben, waar een regelset tegen een dataset gehouden kan worden en duidelijk gemaakt wordt wat de gevolgen van wijzigingen zullen zijn op beslissingen.
- Workflow. Voor goed beheer is een vorm van workflow / samenwerking nodig waarin meerdere mensen rollen als schrijven, testen en goedkeuren van regels kunnen vervullen.
- Distributie. Regels worden vaak centraal beheerd, door een team dat daar speciaal voor is ingericht. De uitvoering van de regels gebeurt decentraal, geautomatiseerd. Een distributiemechanisme is nodig om de juiste regels over te brengen naar de juiste systemen.
- Monitoring. Voor goed beheer is het nodig om zich te hebben hoe toegang in productie functioneert. Dat gaat over of de verschillende runtime omgevingen uberhaupt draaien, en ook statistieken over het aantal aanvragen en beslissingen. Hiermee kan in de gaten gehouden worden of er bijvoorbeeld ineens onverwacht grote aantallen aanvragen binnenkomen, of veel afwijzingen. Dit kunnen tekenen zijn dat er pogingen tot ongeoorloofde toegang zijn geweest.
- Verantwoording. In gevallen van vermoede fraude, of als deel van een reguliere audit, moet het systeem de mogelijkheid bieden om alle relevante informatie over een individuele toegangsbeslissing of een hele reeks beslissing te geven.