Skip to main content

Ztoperator

Deprecation warnings

Ztoperator har aktive deprecation warnings, se deprecation warnings for mer informasjon.

  • Bruk av wildcards * i paths vil fjernes til fordel for eksplisitt syntaks med {*} og {**}

Ztoperator er en Kubernetes-operator som lar deg deklarativt definere hvordan tilgang til en applikasjons endepunkter skal styres. Dette gjøres med en AuthPolicy-ressurs, som peker på en tilhørende Skiperator-applikasjon. Den gir støtte for å

  • definere hvilke endepunkter som skal være åpne.
  • definere hvilke endepunkter som krever et gyldig OAuth 2.0-token.
  • definere hvilke endepunkter som krever spesifikke claims.
  • definere hvilke endepunkter som skal omdirigere brukeren til innlogging.

Ztoperator konfigureres opp mot en tokenutsteder eller identitetstilbyder med feltet spec.wellKnownURI, som peker til et OpenID Connect Discovery Document. Dette dokumentet inneholder informasjon Ztoperator trenger for tokenvalidering og, for brukerrettede flyter, autentisering og utlogging. Hvilke tokenutstedere og identitetstilbydere Ztoperator støtter per nå kan ses under Støttede tokenutstedere og identitetstilbydere.

Hvordan konfigurere innlogging er dokumenter under Innlogging. Hvordan du definerer autorisasjonsregler er dokumentert under Autorisasjonsregler. Hvilke felter som eksisterer og deres oppførsel er dokumentert i API Reference. Hvordan du kan teste og verifisere oppførselen til en AuthPolicy finner du under Test din Ztoperator-AuthPolicy.

🧩 Forutsetninger​

Før du kan bruke Ztoperator til å beskytte tjenesten din må følgende være på plass:

  • Du må vite hvilken OAuth 2.0-tokenutsteder eller identitetstilbyder som passer for din tjeneste. Der det kreves, må du registrere en klient hos tilbyderen. Se her for en oversikt over hvilke tilbydere som støttes av Ztoperator på SKIP.
  • Du må vite hvilket well-known endepunkt, audience og eventuelle claims som gjelder for applikasjonen din.
  • Den beskyttede applikasjonen må kjøre på SKIP.
caution

Ztoperator registrerer ikke klienter for deg. Du må selv ha etablert en integrasjon mot valgt tokenutsteder eller identitetstilbyder, og Ztoperator brukes kun til å beskrive hvordan appen skal beskyttes og håndtere eventuelle innloggingsflyter.

🔐 Verifiser at Ztoperator beskytter din Skiperator-applikasjon​

Siden Ztoperator er en kritisk komponent mtp. sikkerheten og tilgangsstyringen til en applikasjon finnes det mekanismer på SKIP som hindrer oppstart av applikasjonen dersom tilhørende AuthPolicy-ressurs ikke er klar. Du aktiverer dette ved å legge en annotasjon på din Skiperator-applikasjon:

apiVersion: skiperator.kartverket.no/v1alpha1
kind: Application
metadata:
name: my-app
spec:
podSettings:
annotations:
ztoperator.kartverket.no/verify-authpolicy: "true"
...

Tilfeller der mekanismen hindrer oppstart vil utarte seg ved at Skiperator-applikasjonen sitt ReplicaSet er unhealthy, og det ikke dukker opp noen Pod-ressurser for applikasjonen.

Merk at dette kun vil hindre oppstart av nye pods, og ikke hindre eksisterende pods fra å fungere som før. Dette er altså mest nyttig i tilfeller der en applikasjon spinnes opp for første gang. Team Tilgangsstyring håper å utvide valideringen i fremtiden til å verifisere kontinuerlig, også under kjøring, at en pod har korreket konfigurasjon i henhold til dens tilhørende AuthPolicy-ressurs.

🎬 Tutorials​

I denne docsen finner du en rekke tutorials på hvordan du tar i bruk Ztoperator for å beskytte en applikasjon på SKIP.

🛠 Støttede tokenutstedere og identitetstilbydere​

MiljøIdentitetstilbyderwellKnownURISKIP DEVSKIP PROD
PRODMicrosoft Entra ID (Kartverket)https://login.microsoftonline.com/7f74c8a2-43ce-46b2-b0e8-b6306cba73a3/v2.0/.well-known/openid-configuration✅✅
TESTID-portenhttps://test.idporten.no/.well-known/openid-configuration✅❌
PRODID-portenhttps://idporten.no/.well-known/openid-configuration✅✅
TESTMaskinportenhttps://test.maskinporten.no/.well-known/oauth-authorization-server✅❌
PRODMaskinportenhttps://maskinporten.no/.well-known/oauth-authorization-server✅✅
TESTAnsattportenhttps://test.ansattporten.no/.well-known/openid-configuration✅❌
PRODAnsattportenhttps://ansattporten.no/.well-known/openid-configuration✅✅
TESTDatabrickshttps://2004011444667850.0.gcp.databricks.com/oidc/.well-known/openid-configuration✅❌
PRODDatabrickshttps://3359340685875444.4.gcp.databricks.com/oidc/.well-known/openid-configuration❌✅

⚠️ Deprecation warnings​

Ny syntaks for wildcards i paths​

Støtte for frittstående wildcards * i paths vil fjernes innen kort tid. Bruk eksplisitt syntaks som enten matcher èn {*} eller flere {**} path-segmenter:

kind: AuthPolicy
spec:
ignoreAuthRules:
- paths:
# vilkårlig mange path-segmenter
- /{**}
# ett vilkårlig path-segment
- /{*}
# komplett eksempel
- /api/{*}/endpoint/{**}