-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fremtidig løsning for sluttbrukersystemer #200
Comments
Eg oppfattar "Sluttbrukersystem" som i hovudsak eit Skatteetaten-begrep. Blir det brukt av andre? I til dømes helsesektoren virkar det som omgrepa "fagsystem" eller "integrasjonsløsning" i større grad vert nytta: https://www.ehelse.no/standardisering/standarder/malarkitektur-for-datadeling-i-helse-og-omsorgssektoren/_/attachment/inline/a5a908cd-5054-4d21-8eaf-8b795dcb25ea:761793d5dd6b6a1f2b9dd334a44e3a754d5b88e6/M%C3%A5larkitektur%20for%20datadeling%20i%20helse-%20og%20omsorgssektoren%20(HITR%201231_2021).pdf Spørsmålet mitt er om "sluttbrukersystem" er det samme som "fagsystem", eller om ein legge noko anna i begrepet? |
Ref: Enkel systemdelegering til SBS tilbyder Er det ikke egentlig part som er consumer? |
Hvordan knytte en integrasjon mot en gitt systembruker? |
Skatteetaten benytter også begrepet fagsystem, men typisk om egne interne skattefagligeapplikasjoner, Man kan diskutere hvorvidt et regnskapssystem er et fagsystem eller et støttesystem, som er et begrep som hyppig benyttes for øknonomisystem m.m. Integrasjonsløsning ser jeg på som noe annet, men jeg kan se at noen kan velge å ha integresjonsløsninger mellom f.eks. egne regnskapssystem og det som for dem er eksterne tjenester. |
Beskrivelse
Dagens Altinn 2 plattform har løsninger for at systemer kan autentisere og autorisere seg for API.
Noen av de tilgjengelige muligheten forsvinner med Altinn 2.
Denne analysen skal beskrive hvordan Altinn sammen med andre felleskomponenter kan tilby autentisering og autorisasjon av systemer og sluttbrukere av systemene hvor dette er aktuellt.
Løsningene søker å støtte både Digdir sine plattformer og andre plattformer hvor tjenester tilbys.
Mål
Begrepsoversikt
I dette dokumentet brukes følgende begreper.
systemet, men også den part som har kjøpt inn system for lokal installasjon.
Typer sluttbrukersystemer
Skybasert sluttbrukersystem med sluttbrukerpålogging via ID-porten
I dette scenarioet er det en part (avgiver) eller hjelperen til en part (f.eks firma som håndterer lønn) som benytter seg av et skybasert sluttbrukersystem som tilbys fra en SBS Tilbyder.
Eksempler på slike system er
Hvem autentiseres
I dette tilfellet er det sluttbrukeren selv via en av påloggingsmekanismene i ID-porten. Her kan typisk sluttbruker velge mellom BankID, MinID, Buypass osv. Når påloggingen er gjennomført får sluttbrukersystemet tilgang til et accesstoken som benyttes mot API. Accesstokenet inneholder identiteten til sluttbruker.
Systemet gjør kall mot nødvendige API ved å sende med accesstoken utstedt av ID-porten for sluttbrukeren.
Hvem autoriseres?
Bruken av API blir autorisert basert på rettigheten til sluttbrukeren. Enten via direkte delegeringer til sluttbruker av roller eller rettigheter. Eller så er det indirekte via nøkkelroller eller roller man automatisk har fått for part. Enten via roller i enhetsregisteret eller fordi man selv er personen som er part. Part kan være en organiasjon eller en person.
Hvilken trust er det til systemet?
Slik det er nå så er det systemet som ber om pålogging. Sluttbruker må akseptere at systemet får token fra ID-porten under innlogging. Sluttbruker har i praksis ingen kontroll på hva sluttbrukersystemet faktisk bruker tokenet til. Alt som sluttbruker har lov til kan systemet trigge fra bakgrunnprosesser uten sluttbrukerinvolvering.
I tillegg kan ID-port klienten bli autorisert via SCOPES som ID-port klienten har. Hvis scope krever det, må sluttbruker godkjenne bruken av scope.
Eier av API som krever scope kan definere ved hjelp av parameter
requires_user_consent
at sluttbruker må akseptere.Systemet må forhåndsregistreres hos ID-porten for å få en klient-id for å kunne be om en ID-port pålogging. Det er SBS tilbyderen som gjør denne registreringen.
Skjermbildet viser når sluttbruker må godkjenne scopes.
TODO: Hvilken validering er det av system i dag før man får lukkede scopes.
Pro/cons
Lokal installert sluttbrukersystem med sluttbrukerpålogging via ID-porten
Dette konseptet er likt som over, men SBS ansvarlig er hjelper eller part. Hjelper eller PART må ha registrert en klient hos ID-porten som brukes som konkret i installasjonen av systemet.
Skybasert sluttbrukersystem med maskin til maskinpålogging via maskinporten
I dette scenarioet har part eller hjelper til part gått til anskaffelse av et skybasert sluttbrukersystem som benytter maskinporten til å autentisere systemet.
Eksempel på aktuelle leverandører
Hvem autentiseres
Det som autentiseres er en OAUTH klient som er satt opp av SBS-ansvarlig/SBS-tilbyder. Autentiseringen kan skje ved hjelp av virksomhetssertifikat for SBS tilbyder, via Json Web Key (JWK) satt opp for den aktuelle klienten eller et nøkkelpar.
Hvem autoriseres?
I dette tilfellet er det systembrukeren som benyttes. En systembruker kan benyttes av organisasjonen systembrukeren er opprettet av eller av en organisasjon som har fått gitt tilgang til denne systembrukeren ved hjelp av at client_id er knyttet til systembrukeren.
Hvilken trust er det til systemet
Api som benyttes av SBS krever potensielt scopes gitt til SBS leverandør. API tilbyder/Tjenestetilbyder kan sette krav til å gi scope til SBS tilbyder.
Part eller hjelper som ønsker å benytte seg av systemet må velge å utføre en knytning (onboarding) fra av systembrukeren til SBS leverandøren. Delegering av rettigheter til systembrukeren er i praksis delegering av rettigheter til systemet som har fått en slik tilgang for systembruker.
For en systembrukeren så kan man endre systemdelegering uten å endre rettigheter gitt. F.eks at man går fra et system tilbydt fra Visma til en Maskinporten-integrasjon som er for et egetutviklet system hvor integrasjon er satt opp på egen bedrift i Maskinporten.
Onboarding process
Det er ønskelig å kunne tilby en enkel prosess som tilbydere av systemløsninger kan tilby til sine kunder slik at nødvendige rettigheter.
Målet med prosessen er å kunnne sette opp en systemtilgang for sin kunde samt veildedning i det å kunne gi rettigheter til systemtilgangen slik at løsningen til systemtilbyder kan håndtere data på vegne av sin kunde eller sin kunde kunder
Tekniske flyter
Onboarding med systemleverandør
"Onboarding" eget system
Token pålogging tynt token
JWT GRANT
Nedenfor viser hvordan en JWT grant kan se ut i en slik flyt
Tokenet som Maskinporten oppretter hvis API kall mot Altinn viser at man har tilgang til en gitt systembruker kunne sett noe slikt ut hvis organisjonen er tilgang til systembrukeren fdfb80a6-7d54-4c86-8670-7e77307942b5 opprettet av orgnr 910753614
Tykt token
Nødvendige avklaringer
Lokalt installert sluttbrukersystem med maskin-til-maskinpålogging via Maskinporten
I dette scenarioet har man utviklet et system selv hos part, eller hjelper til part, eller man har kjøpt inn software man installerer på egen hardware. Scenarioet er ellers likt bortsett fra at SBS Ansvarlig og systembruker administrator er den samme.
Mobilapp
Her er scenarioet at man har laget en mobilapp som er tilgjengelig i AppleStore.
Hvordan løser vi det hvis det skal polles mot f.eks Dialogporten?
Person AS eksempler
Ragnar - Frilans IT-konsulent
Behov for å rapportere inn omsetning via MVA på sitt enkeltmannsforetak:
Utvikler eget SBS som sender inn data fra en excelfil hvor han har regnskapet.
Registrerer OAUTH client i maskinporten for sitt enkeltmannsforetak
Oppretter systembruker for sitt enkeltmannsforetak.
Delegerer rettigheter til systembruker for innsending av MVA
Kari - Økonomiansvarlig for Storkjøkken AS
20 ansatte. Har behov for å rapportere på forskjellige skjema tilknyttet bedriften:
Punkt 2 og 3 bør kunne startes fra SBS ansvarlig mot en samtykkelignende side som oppretter systembruker og gir nødvendige tilganger.
Det vil være mulighet å endre rettighetene fra Storkjøkken AS sin profil eller via en lenket forespørsel om flere rettigheter initiert av dinbedrift.net
Trine - Kundeansvarlig Revisor AS
100 ansatte. Har behov for at sine ansatte har effektive verktøy for å håndtere alle 1200 kundene de har.
Truls - Nerd med vaskehjelp
Truls er nerd og har ukentlig besøk av vaskehjelp. Dette må ha rapportere inn hver måned med "Melding om lønnet arbeid i hjemmet". Det er han møkka lei av. Så han har laget seg et system for automatisk innrapportering basert på scanning av faktura han får.
Hvordan løse dette med varig tilgang til system uten at Truls må logge inn med jevne mellomrom?
Oppsummert system scenarioer
Avklaringer
Behov for "data-entitet" hos sluttbruker/hjelper for beskrive system og samle tilganger
Vi må lande at vi trenger en entitet som administreres av sluttbruker eller hjelper som
En slik "data-entitet" vil administreres fra Altinns profil.
Navngi "data-entitet"
For øyeblikket kalles entitet "integrasjonsmappe". Dette gir neppe mening for sluttbrukere å delegere til "integrasjonsmappe".
Vi må lande hva vi kaller dette sluttbrukere og hva vi kaller det internt
Er det behov for et register for system & system-leverandører
Vi må avklarere om vi trenger et register over system & system-leverandører.
Dette registeret vil innholde minimum en liste over system med
Skal systemregisteret innholde informasjon om rettigheter systemet krever/trenger for å utføre alt.
Ved å forhåndsregistrere rettighetsbehov for et system så kan Altinn Tilgangstyring automatisk foreslå delegering av rettigheter til systemet ved bruk av "Onboarding prosess"
Hvem skal kunne registrere system i registeret?
Skal det være en prosess for å kunne registrere et slik system i listen?
Skal tjenesteeiere godkjenne hvilke rettigheter et system kan forespørre
Skal det være en godkjenningsprosess for et system. Slik at f.eks SKD må godkjenne at systemet ber om rettigheter for en gitt ressurs.
Hva hvis det er tjenesteeiere som ikke ønsker denne begrensningen? Hvordan sier man at en tjeneste krever forhåndsgodkjenning?
Hvordan skal en slik godkjenningsprosess fungere? Hva med organisasjoner som utvikler sine egne system?
Vil det ikke kunne være nok at tjenesteier med API setter scope krav på API? Så kan gjerne systemleverandør forespørre om rettigheter den ikke har praktisk tilgang til å gjennomføre.
Må sluttbrukersystem selv holde styr på system-identitet som man har fått delegert tilgang til?
Når man i en onboarding prosess ber om å få opprettet en system-identitet så er en mulig flyt at man får i retur "system-identitet" referanse og man må bruke denne mot Maskinporten.
Alternativt kan system-leverandør be om liste over hvilke system-identiteter som er man har fått delegert kontroll over.
Det siste er en nødvendighet når system-identiteten er knyttet til en system basert på en prosess initiert av sluttbruker
Skal man kunne delegere flere systembrukere til samme aktør?
Vil det være mulig å delegere flere systembrukere til samme aktør?
Hvilke parametere kreves ved autentisering mot Maskinporten
Når den som har fått delegert tilgang til en systembruker skal logge inn må den oppgi noe slik at Maskinporten vet hvilken systembruker som skal inn i Maskinporten token
Data entiteter og definisjoner
Figuren nedenfor viser en forenklet model av de dataentiteter som må etableres gitt hypoteser om løsning
Registrering av system i systemregisteret
Systemet registreres. Det blir et nytt innslag av typen SystemType. Denne har navn og beskrivelse og referanse til hvem som er leverandør av systemet. F.eks Navn «TurboSkatt» som er levert av «Visma AS» Eier refereres direkte eller indirekte via orgnr.
Det er ikke avklart om leverandører kan selvregistrere dette til systemregisteret, eller om det må gjennom en godkjenningsprosess. Hvis det blir godkjenningsprosess, hvem er det som gjør det?
Registrering av systembruker
Hvis part eller hjelper ønsker å sende inn data via API må det opprettes en systembruker. Denne systembrukeren får et navn og beskrivelse i tillegg til at det KAN knyttes mot en systemtype i systemregisteret. Hvis det knyttes til et system i systemregisteret vil leverandør av systemet kunne autentisere seg som systembrukeren.
Et system registrert i systemregisteret kan få veldig mange systembrukere knyttet til seg.
Maskinporten vil måtte sjekke mot datagrunnlag via API, om et system har rett til å benytte en gitt systembruker i sammenheng med autentisering.
Det kan kun knyttes en systembruker pr systemtype
Fullmaktsgrupper (roller) til systembruker
En part eller hjelper som har opprettet en systembruker kan velge å delegere en fullmaktsgruppe til systembrukeren. Fullmaktsgruppen gir rettigheter til de ressurser som har en policy hvor den aktuelle fullmaktsgruppen har fått rettighet. Hvis nye ressurser knyttes til fullmaktsgruppen får systembrukeren automatisk tilgang til dette.
Via klientdelegering vil hjelper kunne delegere fullmaktsgrupper
Rettigheter gitt til systembruker
En part kan delegere rettigheter til systembruker via tilgangstyring i Altinn på samme måte som man kan gi sluttbrukere rettigheter. Rettighetene gis ved å lage regler som gir et system rett til å utføre operasjoner på gitte ressurser.
En part kan også delegere via en ny samtykke dialog hvor system-leverandør ber om å få opprettet en systembruker med visse rettigheter som de kan bruke.
Det antas at en hjelper også kan delegere rettigheter via klientdelegering til en systembruker. Dette er ikke tilgjengelig i dag.
###Autorisasjon av token
Altinn Autorisasjon vil ved hjelp av systembrukerID, informasjon om ressurs og informasjon om hvem som er part for ressursen, kunne autorisere om systembrukeren har tilgang.
Skjermbilder Altinn
Nedenfor vises noen konseptuelle skjermbilder fra hvordan man muligens kan realisere håndtering av systembrukere
Samtykke basert registrering av systembruker
Manuell opprettelse og administrasjon av systembrukere fra Altinn Profil
Utviklingsoppgaver
Nedenfor sees utviklingsoppgaver tilknyttet det å utvikle en løsning for å administrere systembrukere i Altinn
#331
The text was updated successfully, but these errors were encountered: