Sist endret: 29. sep. 2025

Beskyttede data

Hvordan sette opp ekstra databeskyttelse for en app

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/style.css.md

Tilgjengelig fra v8.7.0

Introduksjon

Beskyttede data er informasjon som krever ekstra tilgangskontroll, for eksempel personopplysninger eller konfidensiell/klassifisert informasjon.

Du kan lese mer om konseptet her.

Konfigurasjon av Maskinporten

Du må konfigurere Maskinporten for at appen skal kunne utføre handlinger på vegne av tjenesteeier.

Du finner en detaljert veiledning for oppsettet her.

Konfigurasjon av datatyper

applicationmetadata.json-filen definerer alle datatyper i en applikasjon. Her angir du hvilke handlinger som kreves for din beskyttede datatype.

I dette eksempelet konfigurerer vi en ny datatype, hvor vi spesifiserer egenskapene actionRequiredToRead og actionRequiredToWrite, og deaktiverer autoCreate. Vi bruker identifikatoren restrictedDataModel, men navnet i seg selv er ikke viktig.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/Applicationmetadata.json.md

Vi deaktiverer auto-create fordi vår oppdaterte autorisasjonspolicy ikke gir lese- eller skrivetilgang til sluttbrukere. Forsøk på å opprette et dataelement av typen restrictedDataModel med en brukers autorisasjonstoken vil resultere i en 403-Forbidden feil.

Konfigurasjon av autorisasjonspolicy

Ta utgangspunkt i standard policy.xml fil, og endre regel #2 for å gi tjenesteeier tilgang til de nye handlingene.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/Policy.xml.md

Interaksjon med beskyttede data

Siden restrictedDataModel ikke opprettes automatisk eller er knyttet til brukerens normale dataflyt, må du implementere all relevant logikk manuelt.

I denne delen oppretter vi en tjeneste som hjelper oss å samhandle med beskyttede data, før vi viser hvordan vi kan opprette, endre og lese beskyttede dataelementer i en vanlig prosessflyt.

Hjelpetjeneste

For å forenkle autorisasjon og interaksjon med den beskyttede datamodellen, kan vi opprette en hjelpetjeneste som håndterer denne kompleksiteten.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/RestrictedDataHelper.cs.md

Denne tjensten kan registreres i Program.cs og brukes med dependency injection der den behøves.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/Program.cs.md

Skriving av data

Som nevnt tidligere, må vi manuelt opprette dataelementet når applikasjonen går inn i prosessteget Task_1.

For å gjøre dette bruker du metoden UpdateOrCreateData fra RestrictedDataHelper-tjenesten.

Eksempelet under implementerer denne logikken i IProcessTaskStart-interfacet, hvor vi henter informasjon fra et fiktivt API og lagrer det i den beskyttede datamodellen. Denne informasjonen vil ikke være tilgjengelig for brukeren, men kan hentes senere av appen.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/ProcessTaskStartHandler.cs.md

Lesing av data

I koden under har vi laget en implementasjon av IDataWriteProcessor-interfacet, hvor vi utfører en fiktiv skatteberegning. Denne beregningen krever informasjon vi tidligere har lagret i den beskyttede datamodellen, så vi bruker RestrictedDataHelper.GetOrCreateData for å hente den.

Could not find section content. File does not exist: content/altinn-studio/guides/development/restricted-data/shared/DataWriteHandler.cs.md