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, 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 i aud-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 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: 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 et signert tjenestetilbud mangler. Denne verdien er spesifikk for HelseID, og ikke en protokollstandard.

Parameteren rejected_scope er innført av HelseID for å kommunisere tilbake til klienten at den forespurte et scope som krever signerte villkår for bruk, 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.