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
- klienten sender inn scopes som gir tilgang til et API, og
- API-et ønsker å bruke claimet i Access-tokenet
Dette impliserer at klienten ikke kan påvirke hvilke claims som blir med i Access-tokenet. Hvilke claim som settes i Access-tokenet bestemmes altså kun ut fra 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 innlogget bruker.
Navn | Eksempel | Beskrivelse |
---|---|---|
helseid://claims/identity/pid |
11737291652 | Personlig identifikator for den innloggede brukeren (fødselsnummer) |
helseid://claims/identity/security_level |
3 | Sikkerhetsnivået som den innloggede brukeren ble logget på med. Mulige verdier er 2, 3 or 4. |
helseid://claims/hpr/hpr_number |
181000001 | Brukerens helsepersonell-nummer fra helsepersonellregisteret (HPR) |
helseid://claims/identity/network |
helsenett | Indikerer hvorvidt en innlogget 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 |
---|---|---|
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. |
nhn:sfm:journal-id |
ed30a6a5-4834-40be-a32b-1e4f5217e378 | En SFM-id, beregnet for multi-tenant-klienter |
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 innloggede 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 innloggede brukeren. | |
given_name |
FORSIKTIG | Fornavn for den innloggede brukeren. | |
family_name |
HANDELSMANN | Etternavn for den innloggede brukeren. | |
middle_name |
IMPULSIV | Mellomnavn for den innloggede 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 innlogget bruker. | |
scope |
[ “openid”, “profile”, “read” ] | Autorisasjons- og identitets-scopes | X |
cnf |
{ "jkt": "aoezvIe32RdFpTP4FIxwBYb6VGX0dp3ecvoVjFkdXQk" } |
«DPoP confirmation method» som beskrevet i spesifikasjonen | X |
Avviklede claims
Noen claim i HelseID er fremdeles i bruk, men vil bli avviklet i nær framtid. Vi foreslår at du ikke bruker noen av disse claimene.
Name | Description |
---|---|
helseid://claims/identity/assurance_level |
Sikkerhetsnivået som den innloggede brukeren ble logget på med. Dette claimet er under avvikling, du bør bruke helseid://claims/identity/security_level -claimet (se ovenfor) i stedet. |
helseid://claims/identity/pid_pseudonym |
En pseudonymisert personlig identifikator for den innloggede brukeren; dette claimet er under avvikling, du bør bruke sub -claimet (se ovenfor) i stedet, ettersom det inneholder den samme verdien som dette claimet. |