API Autorisasjon
beskrive innhold i JWT i de ulike tilfellene.
For å dekode token, bruk:
En eksempel JWT token utstedt fra Feide ser slik ut. Merk at denne har noen ekstra claims inkludert, som man må eksplisitt be om, og som ikke er med per default.
{
"aud": "https://n.feide.no/datasources/b47bd41d-e80f-4acf-939a-e538902ef1ce",
"jti": "493a8390-7013-410d-a6cd-c03067065f87",
"iss": "https://auth.dataporten.no",
"iat": 1734075388,
"exp": 1734075688,
"nbf": 1734075388,
"client_id": "e19492fa-8919-444c-910c-f7ca2bcf17f2",
"https://n.feide.no/claims/userid_sec": ["feide:andreas@sikt.no"],
"https://n.feide.no/claims/eduPersonPrincipalName": "andreas@sikt.no",
"sub": "9f70f418-3a75-4617-8375-883ab6c2b0af",
"scope": "",
"act": {
"sub": "e19492fa-8919-444c-910c-f7ca2bcf17f2",
"https://n.feide.no/claims/customer_portal_id": "https://n.feide.no/service_ids/2194114"
}
}
Slik validerer du JWT token i ditt API
- Konfigurer tillit til Feide som JWT utsteder
- Ved innkommende forspørsel, hent ut Bearer token fra
Authorization
header - Dekode og valider JWT utsteder (
iss
), signatur og gyldighet (utløpsdato) - Valider at
aud
claim er lik ditt API. Viktig! - Valider at tokenet faktisk inneholder brukerinfo, dersom det er forventet.
- Valider at tokenet ikke inneholder brukerinfo, dersom det er forventet.
Husk å gi en passende feilmelding og HTTP status kode dersom tokenet ikke er gydlig.
Forskjellen mellom JWT med brukerinfo og uten brukerinfo
hva er likt og ulikt mellom når bruker og ikke bruker er inkludert.
Subscopes for tilgangsnivåer
I kundeportalen definerer du et sett med scopes for ditt API, som du kan bruke til å skille ulike tilgangnivåer for ulike klienter.
Dersom et subscope krever godkjenning, og JWT inkluderer dette scopet, så vet du at noen på vegne av API eier har godkjent denne klient for dette tilgangsnivået. Subscope er agnostisk i forhold til hvilke sluttbrukere som er autentisert.
Eksempelkode:
...