Sikkerhetsmodell

Hvordan vi beskytter dine data

Foreningsdomstolen er bygget med et lagdelt sikkerhetsmodell — fra innlogging til databasenivå. Her er en kort oversikt over de fire søylene.

Autentiseringsport (me()-port)

Ingen tilgang uten gyldig innlogging. isAuthenticated settes kun når me() returnerer en ekte bruker med id og e-post. Anonyme brukere omdirigeres til innlogging — ingen gjeste- eller preview-bypass.

  • BankID/SSO som primærinnlogging
  • E-post/passord for begrenset tilgang
  • Sentralisert ProtectedRoute
Row-Level Security på alle entiteter

Alle 58 dataentiteter har RLS. Ingen entitet er lesbar for anonyme. Tilgang anker på created_by_id (alltid populert), obligatoriske e-postfelter, eller rolle-vilkår (user_condition).

  • Kun admin/styre for administrative data
  • Eier-scopet for saksdata
  • Eier via e-post for meldinger og varsler
Rolle-restriksjon på sensitive saksdata

Juridiske saksdata (Case, Document, JournalEntry, Hearing) har ekstra streng scoping. Actor-email-grener (dommer, advokat, part) er pakket i auth-sjekk slik at valgfrie/null-felt ikke lekker til anonyme.

  • Part ser kun egne saker
  • Tildelt dommer/advokat ser sine saker
  • Ingen lekkasje via tomme felt
Secure-by-default

Automatisert revisjonsskript (check_rls.cjs) verifiserer at alle entiteter har RLS og at ingen har åpen read — hver deploy. Auditen skal være ren: 0 uten RLS, 0 åpen read, 0 parsefeil.

  • node base44/scripts/check_rls.cjs
  • 0 uten RLS = grønn audit
  • Offentlig katalog unntatt (Association, Regulation)
Teknisk oppsummering

1. Auth-port: me() kreves for isAuthenticated; ProtectedRoute blokkerer alle beskyttede ruter for anonyme.

2. RLS på alt: 58 entiteter klassifisert (offentlig katalog, kun admin/styre, eier-scopet, eier-via-e-post). Revisjonsskript verifiserer.

3. Rolle-restriksjon: Juridiske saksdata har actor-scoping med auth-pakket e-postmatch — null-felt lekker ikke.

4. Secure-by-default: node base44/scripts/check_rls.cjs — ren audit før publisering.

BankID/SSO Biometri GDPR / NOARK 5 TLS / AES-256