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.

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 her
  • client_assertion_type: Typen for client assertion. Verdien må være urn: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, eller urn:ietf:params:oauth:grant-type:token-exchange.

Ved bruk av authorization_code-grant, disse parametrene brukes:

  • code: Verdien «Authorization Code», utstedt fra HelseID i responsen fra kallet til Authorization-endepunktet
  • redirect_uri: «Redirect URI»-verdien, som sendt fra klienten til HelseID i kallet til PAR-endepunktet
  • code_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, dette parameteret brukes:

  • refresh_token: Refresh-token-strengen, som utstedt fra HelseID i et tidligere kall til Token-endepunktet

De følgende parametrene kan brukes (særlig ved bruk av client_credential- eller token_exchange-grants):

  • scope: Ett eller flere scopes, separert med mellomrom, som beskrevet her [OAuth 2.0].
  • resource: En resource indicator for å velge et spesifikt API. HelseID vil returnere et Access-token med verdien i aud-claimet satt til denne verdien.

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 JWT
  • token_type: Hvilken type token som ble returnert. For HelseID er dette enten DPoP, or bearer
  • expires_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 av authorization_code-granten.
  • refresh_token: Et Refresh-token, i strengeverdi. Denne verdien blir bare returnert hvis klienten har bedt om scopet offline_access, eller ved bruk av refresh_token-granten.
  • rt_expires_in: Antall sekunder før Refresh-tokenet utløper. Denne verdien er spesifikk for HelseID, og ikke en protokollstandard.
  • scope: Scope som ble forespurt i kallet

Feilmeldinger fra Token-endepunktet:

Se dette dokumentet.