Claims

Her finner du en oversikt over claims som HelseID utsteder i tokens. Flere av disse claim-typene har sin opprinnelse i spesifikasjoner, mens andre er spesielt definert med utgangspunkt i behovene til helsesektoren i Norge.

Claims i token

I responsen fra Token-endepunktet vil HelseID sende ut to forskjellige token-typer som inneholder claims:

  • Et Access-token
  • Et ID-token

Hvis klienten bruker client_credentials-flyten, vil HelseID kun gi ut et Access-token.

Hvis klienten bruker authorization_code-flyten for å logge på en bruker, vil HelseID gi ut både et Access-token og et ID-token.

ID-tokenet er ment for klienten, og Acess-tokenet er ment for API-et.

Claimene som beskrives under, kan i mange tilfeller bli satt i begge typen tokens.

Claims i ID-tokenet

Noen claim blir alltid med i ID-tokenet, andre blir bare satt av HelseID hvis klienten sender inn scopes som gir tilgang til claimene. Disse scopene er beskrevet i dokumentet Scopes.

Claims i Acess-tokenet

Noen claim blir alltid med i Access-tokenet, andre blir bare satt av HelseID hvis

  1. klienten sender inn scopes som gir tilgang til et API, og
  2. API-et ønsker å bruke claimet i Access-tokenet

Dette impliserer at klienten ikke kan påvirke hvilke claims som blir med i Access-tokenet, dette bestemmes altså kun utfra hvilke claims APIet har valgt

Et eksempel: API-et «Siffer-tjeneste» ønsker claimene helseid://claims/identity/pid, helseid://claims/identity/security_level, helseid://claims/hpr/hpr_number, og helseid://claims/client/claims/orgnr_parent. API-et har audience nhn:siffer-tjeneste og ett scope: nhn:siffer-tjeneste/primtall.

Hvis en klient har tilgang til API-et siffer-tjeneste, kan den da bruke scopet nhn:siffer-tjeneste/primtall for å få ut et Access-token til bruk mot dette API-et. API-et «Siffer-tjeneste» vil da inspisere Access-tokenet og bruke det til tilgangsstyring.

Claims fra HelseID som beskriver en bruker

Disse claim-typene beskriver egenskapene ved en pålogget bruker.

Navn Eksempel Beskrivelse
helseid://claims/identity/pid 11737291652 Personlig identifikator for den påloggede brukeren (fødselsnummer)
helseid://claims/identity/pid_pseudonym En pseudonymisert personlig identifikator for den påloggede brukeren; dette claimet er under avvikling, du bør bruke sub-claimet i stedet, ettersom det inneholder den samme verdien som dette claimet.
helseid://claims/identity/security_level 3 Sikkerhetsnivået som den påloggede brukeren ble logget på med. Mulige verdier er 2, 3 or 4.
helseid://claims/identity/assurance_level Sikkerhetsnivået som den påloggede brukeren ble logget på med. Dette claimet er under avvikling, du bør bruke helseid://claims/identity/security_level-claimet i stedet.
helseid://claims/hpr/hpr_number 181000001 Brukerens helsepersonell-nummer fra helsepersonellregisteret (HPR)
helseid://claims/identity/network helsenett Indikerer hvorvidt en pålogget bruker ble autentisert med en HelseID-tjener på internett eller på helsenettet. Mulige verdier for claimet er internett eller helsenett. Vær oppmerksom på at lokal infrastruktur kan balansere brukere fra helsenettet til HelseID-noder som er eksponert på internett.

Claims fra HelseID som beskriver en klient

Disse claim-typene beskriver egenskapene ved en klient som er autentisert av HelseID.

Navn Eksempel Beskrivelse Kun i Access-token
helseid://claims/client/client_name "Your client name here" Verdien i claimet er navnet på klientkonfigurasjonen slik som den er satt opp i HelseID Selvbetjening. Verdien kan brukes for logging av klienter i et API, men bør ikke brukes for tilgangsstyring.
helseid://claims/client/claims/orgnr_parent 883974832 Organisasjonsnummeret (hovedenhet) for en sluttbruker / klientkonfigurasjon.
helseid://claims/client/claims/orgnr_child 892262462 Organisasjonsnummeret (underenhet) for en sluttbruker / klientkonfigurasjon.
helseid://claims/client/claims/orgnr_supplier 994598759 For en klient som er satt opp som et multi-tenant-system, er denne verdien organisasjonsnummeret som har mottatt en delegering for å kunne få adgang til HelseID på vegne av en annen organisasjon.
helseid://claims/client/client_tenancy multi-tenant Verdien i dette claimet indikerer hvilken type system som har bedt om et Access-token. Mulige verdier for claimet er: none, single-tenant, eller multi-tenant.
client_amr private_key_jwt Verdien indikerer hvilken type hemmelighet som er brukt for klientautentisering. Mulige verdier for claimet er client_secret eller private_key_jwt.
nhn:tillitsrammeverk:parameters En JSON-struktur En attest fra klienten, beriket med ekstra informasjon fra HelseID. X
nhn:sfm:journal-id ed30a6a5-4834-40be-a32b-1e4f5217e378 En SFM-id, beregnet for multi-tenant-klienter X

Standard-claim

Et token vil inneholde en mengde av standard-claim, som har sine opphav fra OpenID Connect-protokollen og spesifikasjonen for JSON Web Token.

Claims fra OpenID Connect-protokollen

Disse claimene kommer fra OpenID Conntect-protokollen. Du kan finne beskrivelsen av disse claimene her. Noen av disse claimene vil HelseID bare utlevere i ID-tokenet.

Navn Eksempel Beskrivelse Kun i ID-token
sub dXAUXjEAlVsoWcYVaR+fvzuXvnWQ7CYXqvr+DMuJ/0w= Subject – identifiserer den påloggede sluttbrukeren. Verdien i claimet er en hash av fødselsnummeret + salt.
amr [ “pwd” ] Anvendte autentiseringsmetoder, et JSON-array med strenger som identifiserer hvilken autentiseringmetode som ble brukt for å autentisere brukeren.
auth_time 1704116220000 Når sluttbruker-autentiseringen fant sted, beskrevet i «epoch time».
client_id eeb808a2-6e6f-42ae-849a-505432cf128f Identifiserer et unikt nummer for en klient i HelseID.
sid 0970F0ED60C552597BFC254150FA406D Sesjons-ID
name FORSIKTIG IMPULSIV HANDELSMANN Fullt navn for den påloggede brukeren.
given_name FORSIKTIG Fornavn for den påloggede brukeren.
family_name HANDELSMANN Etternavn for den påloggede brukeren.
middle_name IMPULSIV Mellomnavn for den påloggede brukeren.
nonce 63849101571...WQ4OTI4MjVkNmU3 Verdien i nonce-claimet matcher parameteren som ble brukt i kallet til enten /par-endepunktet eller /authorize-endepunktet i forespørselen til HelseID. X
at_hash y9WtN9oBLG9q0J6NDbAHZQ En hash-verdi av Access-tokenet. X
s_hash 5EpOYEdB22sp-7V9zGs4Bw En hash-verdi av state-verdien. X

Andre claim-typer

De fleste av disse claim-typene kommer fra JWT-spesifikasjonen. Noen av disse claimene vil HelseID bare utlevere i Access-tokenet.

Navn Eksempel Beskrivelse Kun i Access-token
iss https://helseid-sts.test.nhn.no Issuer: innholdet i claimet beskriver hvilken programvare som har utstedt tokenet. Dette vil alltid være en URL som beskriver en HelseID-node.
aud nhn:melde Audience: Navnet på den som tokenet er tiltenkt. I et Access-token vil dette være kortnavnet til et API, og i et ID-token vil det være en klient-ID.
exp 1495545339 Utløpstid for tokenet, beskrevet i «epoch time».
nbf 1495545039 Tidspunktet for når tokenet kan tas i bruk, beskrevet i «epoch time».
iat 1495545039 Tidspunktet for utstedelse, beskrevet i «epoch time».
jti F4F832F0C68E24F0011F773B71CC6739 JWT ID - denne verdien vil være unik for ethvert token som har blitt utstedt av HelseID.
idp idporten-oidc Identity: Innholdet i claimet beskriver hvilken identitetsleverandør som har autentisert en pålogget bruker.
scope [ “openid”, “profile”, “read” ] Autorisasjons- og identitets-scopes X
cnf { "jkt": "aoezvIe32RdFpTP4FIxwBYb6VGX0dp3ecvoVjFkdXQk" } «DPoP confirmation method» som beskrevet her X
oldsub ODIALYidSBGR0dAQi0R+jXTPPR5BdEpWDKTGUKVC9YE= Dette claimet inneholder en utløpt verdi for sub-claim; verdien er en hash av client_id + fødselsnummeret + salt.