Autorisasjonskontekster
Lær hvordan autorisasjonskontekster gir finkornet tilgangskontroll med flere parter på enkelte deler av en dialog
Introduksjon
En autorisasjonskontekst er en eksplisitt beskrivelse av autorisasjonsspørsmålet Dialogporten stiller Altinn Authorization om én del av en dialog: hvilken handling, på hvilken ressurs, på vegne av hvilke parter.
Den erstatter autorisasjonsattributter, som kodet alt dette inn i én streng der betydningen avhang av prefikset, og som alltid evaluerte en fast handling - read - som du selv ikke kunne velge.
Den eksplisitte formen gir deg flere ting et autorisasjonsattributt ikke kunne uttrykke:
- flere enn én part sjekken kan evalueres mot
- en handling du selv navngir, i stedet for én utledet fra formen på en streng
- en ressursoverstyring og et underressursattributt som separate felt, slik at en kontekst kan legge en underressurs oppå dialogens egen ressurs uten å forkaste den
- kontroll over hva en uautorisert sluttbruker ser
Hvilke deler av en dialog som kan ha en kontekst
En autorisasjonskontekst kan settes på seks ulike deler av en dialog:
- API-handlinger
- GUI-handlinger
- Forsendelser
- Vedlegg på dialogen
- Vedlegg på forsendelser
- Navigasjonshandlinger på forsendelser
Vedlegg er ett og samme underliggende konsept uansett om de ligger på dialogroten eller på en forsendelse, så det finnes fem ulike typer autorisasjonskontekst, uttrykt på seks bærende deler.
Et sekvensdiagram
Hva en sluttbruker ser når tilgang nektes
Hver autorisasjonskontekst setter en unauthorizedPresentation, enten Disabled (sperret) eller Excluded (utelukket), som avgjør hva en uautorisert sluttbruker ser for den delen av dialogen.
Med Disabled blir entiteten liggende i listen sin med innholdet intakt, men URL-ene - og en eventuell innebygd innholdsreferanse - erstattes med en plassholder. Sluttbrukeren ser at handlingen, forsendelsen eller vedlegget finnes, og at det ikke er tilgjengelig.
Med Excluded forsvinner entiteten helt ut av listen sin, og bare ID-en og opprettelsestidspunktet legges igjen i en excluded*-liste ved siden av listen den ble fjernet fra: excludedTransmissions ved siden av transmissions, excludedAttachments ved siden av attachments, og så videre. Et sluttbrukersystem kan fortsatt skille «her er det noe du ikke får se» fra «her er det ingenting», uten å få vite noe om hva det er.
Den nøyaktige, felt-for-felt-effekten av hvert valg er dekket i teknisk referanse for autorisasjonskontekster.
Forholdet til dialogtokenet
Sluttbrukersystemer bruker det samme dialogtokenet mot alle URL-er i dialogen, også de som tilhører entiteter med en autorisasjonskontekst. Det som er annerledes, er hvordan rettigheten uttrykkes inne i tokenet: listen over autoriserte handlinger inneholder bevisst ikke rettigheter avledet fra autorisasjonskontekster, siden en kontekst kan gi tilgang gjennom en annen part eller ressurs enn dialogens egen. I stedet har tokenet et eget claim som lister opp hver kontekstbærende entitet brukeren er autorisert for, ved entitetens ID eller ved en tokenRef tjenesteeieren velger på konteksten. En tjenesteleverandør som mottar en forespørsel for en slik entitet, sjekker at den står i listen.
Les mer