Skip to main content
Gå til innhold

API Autorisasjon

beskrive innhold i JWT i de ulike tilfellene.

For å dekode token, bruk:

https://jwt.io

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

  1. Konfigurer tillit til Feide som JWT utsteder
  2. Ved innkommende forspørsel, hent ut Bearer token fra Authorization header
  3. Dekode og valider JWT utsteder (iss), signatur og gyldighet (utløpsdato)
  4. Valider at aud claim er lik ditt API. Viktig!
  5. Valider at tokenet faktisk inneholder brukerinfo, dersom det er forventet.
  6. 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:

...