Ztoperator
Ztoperator har aktive deprecation warnings, se deprecation warnings for mer informasjon.
- Bruk av wildcards
*ipathsvil 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.
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.
- Eksempeloppsett av Ztoperator: Microsoft Entra ID
- Eksempeloppsett av Ztoperator: ID-Porten
- Eksempeloppsett av Ztoperator: Ansattporten
- Eksempeloppsett av Ztoperator: Maskinporten
🛠 Støttede tokenutstedere og identitetstilbydere
| Miljø | Identitetstilbyder | wellKnownURI | SKIP DEV | SKIP PROD |
|---|---|---|---|---|
PROD | Microsoft Entra ID (Kartverket) | https://login.microsoftonline.com/7f74c8a2-43ce-46b2-b0e8-b6306cba73a3/v2.0/.well-known/openid-configuration | ✅ | ✅ |
TEST | ID-porten | https://test.idporten.no/.well-known/openid-configuration | ✅ | ❌ |
PROD | ID-porten | https://idporten.no/.well-known/openid-configuration | ✅ | ✅ |
TEST | Maskinporten | https://test.maskinporten.no/.well-known/oauth-authorization-server | ✅ | ❌ |
PROD | Maskinporten | https://maskinporten.no/.well-known/oauth-authorization-server | ✅ | ✅ |
TEST | Ansattporten | https://test.ansattporten.no/.well-known/openid-configuration | ✅ | ❌ |
PROD | Ansattporten | https://ansattporten.no/.well-known/openid-configuration | ✅ | ✅ |
TEST | Databricks | https://2004011444667850.0.gcp.databricks.com/oidc/.well-known/openid-configuration | ✅ | ❌ |
PROD | Databricks | https://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/{**}