Arkitekturmønstre i Access Management UI
Mønstre i React-klienten og BFF-en for Access Management UI.
Access Management UI kombinerer en React-klient med en ASP.NET Core-basert backend for frontend (BFF). Mønstrene er tilpasset en brukerflate som samler data fra mange autorisasjonstjenester.
Backend for frontend
BFF-en tilbyr endepunkter som er tilpasset brukeroppgavene, og skjuler tjenestetopologien og tilgangstokenene for nettleseren.
Fordeler: færre kall fra nettleseren, enklere kontrakter og en samlet sikkerhetsgrense.
Ulemper: BFF-en kan bli en ny monolitt, duplisere backendlogikk og øke responstiden.
Eksempler i koden
AccessPackageControllertilbyr en brukerflatetilpasset API-flate.AccessPackageServicesetter sammen data for brukerflaten.
Porter og klientadaptere
Kjernen avhenger av klientgrensesnitt, mens integrasjonsprosjektet inneholder HTTP-klientene. Dette er et porter-og-adaptere-mønster rundt eksterne Altinn-tjenester.
Fordeler: integrasjonene kan erstattes og prøves isolert. Ulemper: mange nesten like grensesnitt og modeller gir oversettingskode og mer navigering.
Egne visningsmodeller
Modeller merket Frontend former data etter skjermbildenes behov i stedet for å eksponere integrasjonskontraktene direkte.
Fordeler: brukerflaten skjermes mot backendendringer og får mindre sammenstillingslogikk. Ulemper: modellen kan dupliseres og komme ut av takt med kilden.
Tjenester per brukeroppgave
BFF-kjernen deler orkestreringen i tjenester for blant annet tilgangspakker, samtykke, forbindelser og System User.
Fordeler: hver arbeidsflyt får et tydelig samlingspunkt. Ulemper: tjenestene kan bli tynne videresendinger eller utvikle overlappende ansvar.