Regeltalen

Regeltalen #

ABAC/PBAC/ReBac (oftewel) EAM zoals eerder beschreven is een methodiek, een brede beschrijving van een manier van werken, en laat veel vrij over de verdere invulling. Een van de invullingen die gegeven moet worden is hoe regels opgesteld worden. Toegangsregels moeten door mensen geschreven, beheerd en gelezen kunnen worden, en uitgevoerd kunnen worden door machines. Daar is een rechtenexpressietaal (Engels Rights Expression Language of REL) voor nodig.

De programmatuur die toegangsbeslissingen kan nemen op basis van de regels wordt een policy engine of ook wel zero trust engine genoemd. Deze moet passen in de architectuur en infrastructuur van de applicatie of dienst.

Algemene eisen #

Zowel een standaard als de programmatuur daarvan moeten open zijn om ingezet te mogen worden bij de overheid.

Zie hier de overheidsdefinitie van een open standaard , en hier een site die open source bij de overheid definieert en kadert.

Merk op dat open source nog niet wil zeggen dat de software gratis moet zijn.

De regeltalen #

Dit zijn de bekendste talen voor het vastleggen van toegangsregels, met bijbehorende open implementaties:

  • XACML was de eerste open source standaard, onder beheer bij OASIS. Het beschrijft de algemeen aanvaardde architectuur van een PBAC oplossing in PEP, PDP, PAP en PIP. Daarnaast bevat XACML een op XML-gebaseerde regeltaal; met bijna 300 functies is deze heel compleet. XML kent ook nadelen: het is niet eenvoudig te schrijven en te lezen en de verwerking presteert vaak niet goed. XACML wordt actief gebruikt, al verliest het terrein aan nieuwere talen en implementaties.

    Daarnaast is er ALFA , een verkorte notatie ontwikkeld door Axiomatics en gedoneerd aan OASIS. ALFA is nog niet als standaard geaccepteerd, en de enige implementatie is die van Axiomatics zelf.

  • ODRL is een W3C-beheerde standaard, specifiek ontworpen om rechten vast te leggen op digitale media, zoals muziek en film. De notatie is compact, er zijn vele implementaties van, waarvan een aantal open source, en daar is het W3C-referentie-model in RDF en OWL de bekendste van. De functies zijn vrij specifiek voor media-rechten, maar als ze voldoen aan de behoefte in onze context is het een serieuze optie. Nadeel is dat er geen optie is om voorwaarden (obligations) te verbinden aan toestemming.

  • Cedar is een open source taal die door Amazon wordt beheerd en intensief gebruikt in AWS. Het is een compacte notatie, en kan geautomatiseerd worden omgezet in JSON voor machineverwerking.

  • CEL is door Google ontwikkeld als meer generieke taal om relatief eenvoudige expressies te schrijven. Er zijn meerdere partijen die engines gebouwd hebben en CEL lezen.

  • Rego is een taal die ontwikkeld is door Styra, een commerciële partij, en daarna gedoneerd aan CNCF. De taal is speciaal ontworpen om gebruikt te worden in Styra’s Open Policy Agent (OPA) . Rego ligt dichter bij een programmeertaal dan bij specificatie-achtige talen zoals XACML en ODRL, waardoor het maken van tools voor schrijven, lezen en analyseren moeilijker is.

De talen EPAL en Sentinal zijn niet-open source, en vallen daarom af.

Uitwisselbaarheid talen onderling #

Alle regeltalen proberen hetzelfde te doen, elk op hun eigen manier. De verschillen zijn vaak historisch gegroeid, of ingegeven door andere visies op bestandsformaten. En de verschillen worden in stand gehouden door commerciële belangen. Voorlopig is er geen convergentie te zien, aangezien de grote technologie werelden (Google, Amazon, Microsoft en CNCF) elk hun eigen oplossing stevig gevestigd hebben.

Tegelijk zijn er wel degelijk grote overeenkomsten en zou een overkoepelende taal of uitwisseling mogelijk kunnen zijn.