Hvordan vi skapte idiotsikker multitenant sikkerhet
Publisert 19. juni 2026
Skrevet av: Michael Hermansen
Sikkerhet i multitenant SaaS-produkter kan være utfordrende. For verktøyet vårt Designmaskinen har vi utviklet en løsning som krever minimalt vedlikehold og som funker!
Sikkerhet i Designmaskinen
Sikkerhet er kanskje det viktigste aspektet i et multitenant SaaS-produkt. Multitentant handler om at flere kunder deler samme programvareinstans og infrastruktur, men har adskilte og sikre datasett.
Da vi utviklet Designmaskinen, en B2B-applikasjon som håndterer flere organisasjoner i samme system, var dataisolering vår høyeste prioritet. Vi ønsket å skape et robust system som lot oss utvikle raskt uten frykt for å introdusere sikkerhetshull uansett hvor kompleks applikasjonen ble.
I Designmaskinen er det avgjørende å holde kundedata adskilt. For å få det til bruker vi Clerk for identitetshåndtering og PostgreSQLs row-level security.
Tjenesten har vært i produksjon siden november 2023 – så hvorfor skriver vi om dette nå? Fordi vi nylig tok et steg tilbake og beundret det vi hadde oppnådd.
Sikkerhetsløsningen vi utviklet har stått urørt siden lansering. Den fungerer bare. Den gjør jobben sin. En skuddsikker svart boks som håndterer hvem som har tilgang til hva. Det synes vi fortjener et blogginnlegg.
Multitenancy: Sikkerhetsutfordringene med flere kunder i én applikasjon
For å forstå utfordringene knyttet til multitenancy, er det viktig å definere begrepet. Multitenancy innebærer at flere tenants, i vårt tilfelle ulike organisasjoner, bruker samme applikasjon, mens dataene holdes strengt atskilt. Det finnes flere måter å løse dette på:
- Tilgangskontroll på API-nivå: En enkel løsning er å kontrollere tilgang ved hjelp av API-kall. Du sjekker hvem brukeren er, og returnerer dataene de skal ha tilgang til. Imidlertid kan denne tilnærmingen være risikabel, da tilgangslogikken kan bli spredt over hele kodebasen, noe som kan føre til feil etter hvert som applikasjonen vokser.
- Egen instans for hver organisasjon: En annen tilnærming er å opprette en separat instans av applikasjonen for hver enkelt organisasjon. Selv om dette sikrer 100 % isolasjon, blir det raskt uholdbart og tungvint etter hvert som kundebasen vokser.

