Komponentarkitektur - Altinn Tilgangskontroll
Tilgangskontroll-komponenten i Altinn-plattformen er en ASP.NET Core 6 web API-applikasjon som driftes som en Docker-kontainer i Altinn-plattformens Kubernetes-klynge.
Se løsningssidene for detaljer om funksjonaliteten denne komponenten tilbyr.
Diagrammet under viser hvor de ulike løsningskomponentene er plassert.
Autorisasjonskomponenten er bygget som en ASP.NET MVC-applikasjon som eksponerer API-er. API-ene kommuniserer med de ulike løsningskomponentene.
Diagrammet under viser dataflyten, inkludert PEP.
Decision API
Decision API-et orkestrerer beslutningsprosessen.
API-et støtter både XACML XML og XACML JSON Profile-forespørsler.
Se Decision Controller for kodedetaljer.
Policy Decision Point - PDP
Dette er implementert som et eget klassebibliotek som er publisert på NuGet.
Biblioteket inneholder alle modellene som er definert for XACML XML/JSON samt hjelpefunksjoner for å håndtere XACML-dokumenter.
Policy Decision Point er implementert i denne klassen.
Den forventer både beslutningsforespørsel og policy som input.
Policy Retrieval Point - PRP
Policy Retrieval Point-komponenten lagrer autorisasjonspolicyer for applikasjoner.
Policyene lagres som XACML (XML) dokumenter i en blob-lagring.
Når PDP mottar en autorisasjonsforespørsel, identifiserer PRP riktig policydokument i lagringen.
PRP er konfigurert som en tjeneste i autorisasjonskomponenten og kan enkelt erstattes med andre implementasjoner.
Context Handler
Context Handler beriker autorisasjonsforespørselen med informasjon om brukeren og ressursen. Roller hentes fra SBL Bridge, mens ressursinformasjon hentes fra Instances i lagringen.
Context Handler er konfigurert som en tjeneste i autorisasjonskomponenten og kan enkelt erstattes med andre implementasjoner.
Policy Information Point - Roles
PIP for roller kaller SBL Bridge for å hente reglene en bruker eller et system har for en ressurs-eier.
Dette er implementert som en tjeneste. Se implementasjon
Tjenesten kan enkelt erstattes med andre implementasjoner.
Policy Information Point - Party
Denne funksjonen er implementert som en tjeneste. Se implementasjon
Den kan enkelt erstattes med andre implementasjoner.
Policy Information Point - Resources
PIP for ressurser henter instansinformasjon fra lagringen.
Dette er implementert som en tjeneste. Se implementasjon
Tjenesten kan enkelt erstattes med andre implementasjoner.
API-kontrollere
- Decision
- Policy (flyttes til Resource Registry)
- Roles (flyttes til Access Management)
- Parties (flyttes til Access Management)
Dependencies
Se csproj-filen.
Slik bruker du Altinn Platform Authorization i egen løsning
PDP-en inneholder ingen Altinn-spesifikk funksjonalitet. Dette må du implementere i din egen løsning:
Context Handler
Du må skrive din egen context handler som forstår domenet ditt og vet hvilken type berikelse som er nødvendig. I de enkleste scenarioene behøver den ikke gjøre noe dersom autorisasjonsforespørselen allerede inneholder all informasjon PDP trenger.
PRP
Du må implementere funksjonalitet for å finne riktig XACML-policy. I Altinn har vi forskjellige policyer for ulike apper, men i enkle scenarioer kan det holde å referere til en statisk XACML-policy.
PIP
Hvis context handler må berike