vrijdag 5 februari 2016

Toegangscontrole - RBAC

Role-based access control (RBAC) is een methode waarmee op een effectieve en efficiënte wijze toegangscontrole voor informatiesystemen kan worden ingericht. Kenmerk van RBAC is dat individuen niet rechtstreeks worden geautoriseerd in informatiesystemen, maar dat ze uitsluitend rechten krijgen door een vorm van groepslidmaatschap, op basis van de rol die ze hebben binnen een organisatie of bedrijfsproces. Ook de permissies op objecten/functies in informatiesystemen kunnen worden gegroepeerd in rollen. (Wikipedia)


Eerst een aantal richtinggevende uitspraken waar de toegangscontrole op gegevens aan moet voldoen:
  1. Iedere gegevensbeheerder wordt vooraf geïdentificeerd en geautoriseerd. Van de registratie wordt een administratie bijgehouden (BIWA).
  2. De toewijzing en het gebruik van speciale bevoegdheden behoren te worden beperkt en beheerst (BIWA)
  3. Ieder gegeven is geclassificeerd (BIWA)
  4. De toegangscontrole op gegevens wordt zo laag mogelijk in bronsystemen gelegd
  5. Ieder gegeven maakt deel uit van één informatiedomein
  6. Gegevensbeheerders voeren beheer uit op basis van een domeinlidmaatschap
  7. De toegangscontrole op data wordt Role Based ingericht
(BIWA - Baseline Informatiebeveiliging Waterschappen)

Hieraan is eenvoudig met standaard functionaliteit te voldoen door het toekennen van rollen waarmee de toegang tot tabellen wordt geregeld. In een later bericht wordt verteld hoe Row Level Security ervoor zorgt dat meerdere bronhouders hun gegevens kunnen samenvoegen in één tabel, waarbij men de data van een ander kan zien en gebruiken, maar alleen de eigen data kan beheren.

DEMO

PostgreSQL kent geen users, alleen maar twee typen rollen.
Een Login Role, die zo wordt ingericht dat het alleen gebruikt kan worden om zich aan te melden:

CREATE ROLE jane LOGIN
  ENCRYPTED PASSWORD 'md571aa5663875719a2e0dbdb91aaa3c332'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

Een Group Role, die zo wordt ingericht dat het alleen maar beheertaken kan uitvoeren. Een Group Role sluit naadloos aan op het concept van naamruimte (namespace) of informatiedomein.

CREATE ROLE nsBGT
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
COMMENT ON ROLE nsBGT IS 'informatiedomein Bronhouder Basisregistratie Grootschalige Topografie';
-- Jane is o.a. gegevensbeheerder van het informatiedomein nsBGT
GRANT nsBGT to jane;

Daarnaast is er nog de superuser voor speciale bevoegdheden : postgres.
Een tweede superuser dient als achtervang.

Simpeler is het niet te maken.
De kunst is echter het consequent toepassen.

Geen opmerkingen:

Een reactie posten