đ Tilgangsstyring
MĂ„lbilde for tilgangsstyring pĂ„ SKIPâ
Vi tilbyr plattformfunksjonalitet som gjÞr det enkelt for teamene pÄ SKIP Ä levere sikre tjenester, basert pÄ prinsipper om least privilege og zero trust, samt bruk av nasjonale felleskomponenter og moderne autentiserings- og autorisasjonsmekanismer.
En fordel med Ä tilby slik funksjonaliteten pÄ plattformnivÄ er at de samme mekanismene kan brukes, pÄ samme mÄte, uavhengig av applikasjonen den skal beskytte. Dette gir Kartverket mÄlbarhet og konsistens i hvordan tilgangsstyring hÄndteres, uavhengig av applikasjon, team eller divisjon. Innebygd tilgangsstyringsfunksjonalitet i plattformen hjelper oss Ä opprettholde et hÞyt minimumsnivÄ av sikkerhet i alle applikasjoner.
Funksjonalitet vi tilbyrâ
- Dokumentasjon og anbefalinger av relevante identitetstilbydere
- Klientregistrering mot relevante identitetstilbydere
- Innlogging og sesjonshÄndtering
- Grovkornet autorisasjon, som lar deg autorisere hvilke requests som slippes gjennom til din applikasjon
- Finkornet autorisasjon med Open Policy Agent, som hjelper deg Ă„ implementere komplekse og domenespesifikke autorisasjonsregler
- Token Exchange
- VerktĂžy for uthenting og validering av tokens
Mye av denne funksjonaliteten tilbys via to Kubernetes-operatorer og tilhĂžrende Kubernetes-ressurser:
- Ztoperator: en Kubernetes-operator for innlogging, sesjonshÄndtering og claims-validering, via
Kubernetes-ressursen
AuthPolicy - Accesserator: en Kubernetes-operator for token exchange, finkornet autorisasjon, token-uthenting av m2m-tokens og
token-validering, via Kubernetes-ressursen
SecurityConfig
đ„ Plattform- vs. applikasjonssikkerhetâ
Plattformfunksjonalitet kan, men bÞr ikke nÞdvendigvis, erstatte all tilsvarende funksjonalitet i de underliggende applikasjonene. Noen sikkerhetsmekanismer, som f.eks utfÞrelse av OAuth-innloggingsflyt eller kryptering av nettverkstrafikk, er de fleste team tilfreds med Ä la plattformen hÄndtere i sin helhet. Validering av tokens og mer detaljert tilgangsstyring er derimot noe som med fordel kan gjÞres bÄde av plattformen og av applikassjonskoden selv. Vi anbefaler hvert enkelt team, gjerne i samarbeid med Team Tilgangsstyring, Ä vurdere hvilke plattform- og applikasjonsmekanismer som passer best for deres behov.
PÄ generelt grunnlag anbefaler vi Ä ha flere lag med sikkerhet, og dermed implementere egnede sikkerhetsmekanismer og validering bÄde i plattformen og i applikasjonskoden.
Token-validering og grovkornet tilgangsstyring i Ztoperator vs. applikasjonskodeâ
Med bruk av test-authpolicy-action er det mulig Ă„ teste i CI/CD at en
Ztoperator-AuthPolicy er konfigurert til Ă„ utfĂžre deny/redirect/allow slik som forventet. Det eksisterer derimot ikke
noe testverktÞy som tester selve applikasjonskoden sitt samspill med Ztoperator. Basert pÄ dette anbefaler vi at teamene
selv tar stilling til hvorvidt de er komfortable med Ä kun stole pÄ Ztoperator for token-validering, eller om de Þnsker
Ă„ implementere token-validering i applikasjonskoden i tillegg.
SPIFFE vs. bruk av tokens for tjeneste-til-tjeneste-kommunikasjon innad i Kubernetes-clusterâ
Plattformen garanterer for at ondsinnede aktÞrer ikke kan anskaffe seg eller forfalske SPIFFE-identiteter. Det er derfor mulig Ä tilgangsstyre kommunikasjon mellom interne tjenester pÄ SKIP ved kun bruk av SPIFFE-identiteter. Derimot er det en realitet at vi ikke tilbyr noe god mÄte Ä teste eller verifisere dette pÄ en applikasjonsnÊr mÄte, f.eks som del av CI/CD. Med dette tatt i betrakning anbefale vi Ä bruke SPIFFE i kombinasjon med én eller flere av fÞlgende mekanismer:
- Validering av
X-Forwarded-Client-Cert-header i applikasjonen, som inneholder SPIFFE-identiteten til klienten - Bruk av maskinidentiteter med tokens, f.eks Microsoft Entra ID