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
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
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