Autorisasjonsregler
Introduksjon til autorisasjonsregler i Ztoperator
Ztoperator lar deg spesifisere autorisasjonsregler i tre lag:
authRules: ytterligere regler (utover gyldig token) som gjelder for spesifikke paths og HTTP-metoder. Regler definert iauthRulesoverstyrer kolliderende regler iignoreAuthRulesignoreAuthRules: regler som spesifiserer paths og HTTP-metoder som skal være tilgjengelig uten gyldig token.baselineAuth: ytterligere regler (utover gyldig token) som gjelder for alle paths, unntatt de som omfattes avignoreAuthRules.
Definisjonen av "gyldig token" her er:
- Tokenet må være signert av identitetstilbyderen som er konfigurert i
spec.wellKnownURI - Tokenet må ha et audience som matcher en av de som er definert i
spec.allowedAudiences - Tokenet må ikke være utløpt iht.
exp-claimet - Tokenet må ikke være utstedt i fremtiden iht.
nbf-claimet
Ytterligere claims-baserte regler definert i authRules og baselineAuth vil bli validert i tillegg til nevnte krav
til gyldig token.
Komplett eksempel
apiVersion: ztoperator.kartverket.no/v1alpha1
kind: AuthPolicy
spec:
ignoreAuthRules:
- paths:
- /public{**}
- paths:
- /feedback
methods:
- GET
- POST
authRules:
- paths:
- /admin{**}
when:
- claim: role
values:
- admin
- claim: groups
values:
- my-admin-group
baselineAuth:
claims:
- claim: groups
values:
- my-user-group
... # øvrige påkrevde/valgfrie felter
I dette eksemplet vil følgende autorisasjonsregler gjelde:
- Forespørsler til
/publicog alle underliggende stier vil være tilgjengelig uten gyldig token. - GET- og POST-forespørsler til
/feedbackvil være tilgjengelig uten gyldig token. - PUT-, PATCH- og DELETE-forespørsler til
/feedbackvil kreve et gyldig token med et claimgroupsmed verdienmy-user-group, sidenignoreAuthRuleskun gjelder for GET- og POST-forespørsler. - Forespørsler til
/adminog alle underliggende stier må ha et gyldig token med claimetrole: adminog et claimgroupsmed begge verdienemy-user-groupogmy-admin-group. Altså vilauthRulesogbaselineAuthfor samme claim bli kombinert - førstnevnte vil ikke overskrive sistnevnte. - Forespørsler mot alle andre paths må ha et gyldig token med et claim
groupsmed verdienmy-user-group.