Token-endepunktet
Token-endepunktet er tilgjengelig i HelseID på stien /connect/token, relatert til navnet på tjeneren. For eksempel:
https://helseid-sts.test.nhn.no/connect/token
Bruken av dette endepunktet er beskevet her.
Token-endepunktet kan brukes for å forespørre tokens fra HelseID. Det støtter grant-typene authorization_code, client_credentials, refresh_token og token_exchange.
Du må også bruke DPoP som en sikringsmekanisme i kallet til Token-endepunktet. Dette gjelder alle grants som kan angis i grant_type.
Kall til Token-endepunktet
De følgende parametrene er obligatoriske:
client_id: Identifiserer klienten. Du får denne verdien i HelseID Selvbetjening.client_assertion: En Base64-kodet JWT som er signert med din privatnøkkel, som beskrevet herclient_assertion_type: Typen forclient assertion. Verdien må væreurn:ietf:params:oauth:client-assertion-type:jwt-bearer.grant_type: En grant for kallet. De følgende verdiene kan brukes:authorization_code,client_credentials,refresh_token, ellerurn:ietf:params:oauth:grant-type:token-exchange.
Ved bruk av authorization_code-grant, må disse parametrene brukes:
code: Verdien «Authorization Code», utstedt fra HelseID i responsen fra kallet til Authorization-endepunktetredirect_uri: «Redirect URI»-verdien, som sendt fra klienten til HelseID i kallet til PAR-endepunktetcode_verifier: «PKCE proof key», som sendt som en hashet verdi i kallet til PAR-endepunktet (verdien skal ikke hashes i dette kallet)
Ved bruk av refresh_token-grant, må denne parameteren brukes:
refresh_token: Refresh-token-strengen, som utstedt fra HelseID i et tidligere kall til Token-endepunktet
Den følgende parameteren kan brukes:
resource: En resource indicator for å velge et spesifikt API. HelseID vil returnere et Access-token med verdien iaud-claimet satt til denne verdien.
Den følgende parameteren kan brukes, men bare ved bruk av client_credentials, refresh_token, eller token_exchange-grants:
scope: Ett eller flere scopes, separert med mellomrom, som beskrevet her [OAuth 2.0].
For parametre ved bruk av token_exchange: se dette dokumentet.
Et eksempel på innhold ved bruk av Token-endepunktet:
POST /connect/token HTTP/1.1
Host: helseid-sts.nhn.no
Content-Type: application/x-www-form-urlencoded
client_id=f4352589-549d-47ec-9844-5255f4eb0fad&
grant_type=authorization_code&
redirect_uri=https%3A%2F%2Fclient.example.org%2Fredirect&
code_verifier=kaaoUXWxz64a1FIzO|4uVW2CBySgShekR5G7oyEg9Q&
client_assertion=eyJhbGciOiJSUzI...lZ22kWJV4pHr8t&
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
code=FF35789EB21464EAC9EE88260A6...672FEEA01735-1&
Respons fra Token-endepunktet
En suksess-respons fra Token-endepunktet vil inneholde følgende parametre:
access_token: Et Access-token, kodet i Base64 som en JWTtoken_type: Hvilken type token som ble returnert. For HelseID er dette entenDPoP, orbearerexpires_in: Antall sekunder før Access-tokenet utløper
En suksess-respons fra Token-endepunktet kan også inneholde disse parametrene:
identity_token: Et ID-token, kodet i Base64 som en JWT. Tokenet korresponderer til sesjonen til den innloggede brukeren. Denne verdien blir bare returnert ved bruk avauthorization_code-granten.refresh_token: Et Refresh-token, i strengeverdi. Denne verdien blir bare returnert hvis klienten har bedt om scopetoffline_access, eller ved bruk avrefresh_token-granten.rt_expires_in: Antall sekunder før Refresh-tokenet utløper. Denne verdien er spesifikk for HelseID, og ikke en protokollstandard.scope: En liste over hvilke scopes som ble inkludert i Access-tokenet.rejected_scope: En liste over forespurte scopes som ikke ble inkludert i Access-tokenet fordi det mangler et signert bruksvilkår. Denne verdien er spesifikk for HelseID, og er ikke en protokollstandard.
Parameteren rejected_scope er innført av HelseID for å kommunisere tilbake til klienten at den forespurte et scope som krever signerte bruksvilkår , men at villkårene ikke er signert for den aktuelle virksomheten som klienten representerer. Dette er kun relevant for multi-tenant-klienter som kan representere flere virksomheter.
Feilmeldinger fra Token-endepunktet:
Se dette dokumentet.