Altinn/altinn-access-management

Tilgangsliste Autorisasjon

Opened this issue · 0 comments

Beskrivelse

Team Tilgangsinfo har utviklet funksjonalitet i Ressursregisteret for å definere Tilgangslister knytt til ressurser i registeret som fungerer som ett ekstra autorisasjonslag på toppen av normal autorisasjon i Altinn (gjennom roller og enkeltdelegeringer).
Dette autorisasjonslaget gjelder for avgiveren konteksten av en autorisasjon, og det er hver enkelt tjenesteeier som for sine ressurser evt. velger å aktiverer Tilgangsliste-autorisasjon og administrerer selve listene og hvilke organisasjoner de gir tilgang til hvilke ressurser.

Tilgangsstyring og Autorisasjon må nå integreres med sjekk for om ressurser krever Tilgangssliste autorisasjon av avgiver, og så integrere med internt API i Ressursregisteret for å slå opp tilganglistemedlemskap for avgiver og gjøre en autorisasjonsavgjørelse.

Foreslåtte løsninger:

L1: Party-policy

  1. Ressurser i Ressursregister får ett nytt flagg man kan benytte for å aktivere ekstra autorisasjonssjekk av avgiver.
  2. Ressurser i Ressursregister får en ny policy man kan benytte for å spesifisere reglene som skal benyttes for autorisasjonssjekk av avgiver.
  3. Authorization vil levere nytt PDP "AuthorizeParty" API endepunkt som vil autorisere en gitt Part basert på reglene satt opp i "Party-policy".
  4. Eksisterende Decision/Authorize API vil sjekke nytt flagg på ressurs for å evt. utføre ekstra avgiver autorisasjon.
  5. Eksisterende DelegationCheck API vil sjekke nytt flagg på ressurs for å evt. utføre ekstra avgiver autorisasjon.

L2: Direkte Tilgangsliste Integrasjon:

  1. Ressurser i Ressursregister får ett nytt flagg man kan benytte for å aktivere ekstra autorisasjonssjekk av avgiver.
  2. Authorization vil levere nytt PDP "AuthorizeParty" API endepunkt som vil autorisere en gitt Part basert på oppslag av om hvilke tilgangslister avgiver er lagt til i, som er koblet til ressursen som skal autoriseres tilgang for.
  3. Eksisterende Decision/Authorize API vil sjekke nytt flagg på ressurs for å evt. utføre ekstra avgiver autorisasjon.
  4. Eksisterende DelegationCheck API vil sjekke nytt flagg på ressurs for å evt. utføre ekstra avgiver autorisasjon.

I denne løsningen vil da kobling mellom Tilgangsliste og Ressurs håndteres is members API til tilgangslister i RRR.
Det vil dermed ikke støtte ressurser hvor tjenesteier har behov for å skille på sin tilgangsstyring gjennom RRR Tilgangslister på forskjellige steg/prosess/del-ressurser. Read tilgang for en ressurs vil altså gjelde Read for alle del-ressurser.

Definisjoner

PDP / XACML

PDP - Policy Decision Point, komponent i autorisasjon som svarer på alle autorisasjonsforespørsler i XACML format.
Part - Person eller virksomhet som kan representeres av andre i Altinn. Unntak er Selvregistrerte brukere som per. i dag bare kan representere seg selv.
Subject - Part eller bruker som skal autoriseres på vegne av en Avgiver.
Avgiver - Part som Subject skal autoriseres for, kan være Subject som opptrer på vegne av seg selv.
Action - Handling som Subject forsøker å utføre
Resource - Spesifisert ressurs med eller uten spesifisert ressurs-del/steg/process/instans, som Subject skal autoriseres for tilgang til gitt Action for en gitt Part.
Resource-policy - XACML policy registrert i Ressursregisteret for autorisasjon av Subject i en PDP-autorisasjon for tilganger til en gitt ressurs.
Party-policy - NY XAXML policy registrert i Ressursregisteret for autorisasjon av Avgiver/Part i en PDP-autorisasjon for tilganger til en gitt ressurs.

RRR / RTR

RRR / RTR - Ressurseiers Rettighetsregister. Register knytt til ressurser i Ressursregisteret, hvor ressurseier selv kan administrere tilgangslister for hvilke party som er skal kunne benytte og/eller delegere tilganger for en gitt ressurs.
Access List - Tilgangsliste tjenesteeiere kan administrere selv gjennom API i Ressursregisteret eller gjennom Altinn Studio. Kan brukes både i Ressurs-policy (XACML) som subject på regel for å hvem som skal få en gitt tilgang, og i Avgiver-policy (XACML) hvor man kan spesifisere ekstra autorisasjonssteg som skal utføres på avgiver i en autorisasjonssjekk.

Avklaringer

Avkl-1: Valg av løsning:

  • L1 - Party-policy
  • L2 - Direkte Tilgangsliste Integrasjon

In scope

  • Integrasjon i tilgangsstyring så delegering av ressurs som krever tilgangsliste-sjekk, ikke er mulig dersom avgiver mangler tilgang til ressursen gjennom tilgangslister.
  • Integrasjon i autorisasjon så autorisering på vegne av en avgiver for en ressurs som krever tilgangsliste-sjekk,, ikke er mulig dersom avgiver mangler tilgang til ressursen gjennom tilgangslister..

Features

  1. 5 of 7
    jonkjetiloye
  2. 0 of 7
    kind/feature-request
  3. 0 of 4
    kind/feature-request

Out of scope (evt. senere leveranse)

Det som ikke er relevant eller kan vente:

  • API for å kunne trigge rydding av delegeringer gjort fra en gitt avgiver, når denne mister tilgang gjennom Tilgangsliste.
  • Samme API kan benyttes dersom en tjeneste skal begynne å kreve Tilgangslister

Additional Information

Tilgangsliste Open API Spec:
https://docs.altinn.studio/api/resourceregistry/spec/#/Access%20List

AccessList Policy Example:
https://github.com/Altinn/altinn-studio-docs/blob/master/content/authorization/what-do-you-get/resourceregistry/rrr/policy_rrr_accesslist_subject.xml

Test

  1. kind/testplan
    sneha-sirure