Den gode filtrering

Den gode filtrering

Basalt sikkerhedsprincip i STAR City


1. Forretningsmæssig kontekst

I DFDG skal information kun eksponeres til aftagere, der har ret til at se den.

Filtrering anvendes når:

  • En aftager ikke må kende til et objekts eksistens

  • En aftager må kende objektet, men kun dele af det

  • Retten til indsigt afhænger af:

    • Myndighedstype

    • Sikkerhedskontekst

    • Kontaktgruppe, f.eks. om borgeren er tilmeldt som værende dagpengemodtager

    • Medlemskaber, f.eks. a-kasse medlemskab

    • Endpoint

    • Kaldende system

Filtrering er dermed en informationssikkerhedsmekanisme.

Filtrering er ikke et spørgsmål om præsentation – det er et spørgsmål om adgang.


2. Grundprincipper

2.1 Filtrering er ikke forretningslogik

Forretningslaget arbejder altid på ufiltrerede data.

Filtrering:

  • SKAL ske efter query feature

  • SKAL ske udenfor forretningslaget

  • MÅ IKKE implementeres i forretningslogik

  • MÅ IKKE implementeres i repositories

  • MÅ IKKE implementeres via SQL-betingelser for adgang

  • SKAL unittestses - både for positive og negative scenarier

Dette sikrer:

  • Korrekt forretningsadfærd

  • Ensartet sikkerhed

  • Genbrugelige domænemodeller


2.2 Ansvar for filtrering

Filtrering er et tværgående sikkerhedslag, men:

Domæneobjekter har selv ansvaret for at kunne filtrere sig selv.

Det betyder:

  • Filtreringsregler defineres i domænemodellen

  • Domæneobjekter afgør selv:

    • Om de skal fjernes helt

    • Om de skal trimmes

  • Filtrering må ikke centraliseres i en ekstern service med domæneviden

Dette sikrer:

  • Høj kohæsion

  • Lokaliseret ansvar

  • At filtreringsregler følger domænelogikken


3. Teknisk implementering

Den tekniske implementering af filtrering er beskrevet i:

https://starwiki.atlassian.net/wiki/spaces/CITY/pages/2739666965

Denne side beskriver alene de forretningsmæssige og arkitektoniske principper.