/par

I tidligere OAuth2/OpenId Connect standarder så ble alle parameterne sendt inn til Authorize-endepunktet. Ved bruk av Pushed Authorization Request (PAR) så gjøres det i steden først et HTTP-kall mot et PAR-endepunkt, hvor alle parameterne sendes inn. Man mottar da en kode, som så sendes inn til https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/1346765097-endepunktet som åpnes i en nettleser. Bruk av PAR er påkrevdfor public-clients da man beskytter parameterverdiene som sendes inn samtidig som det også muliggjør å ha rikere parameterverdier.

Spesifikasjoner

Request

URL og verb: POST https://{miljø}/sts/oidcprov/v1/par

Content-type: application/x-www-form-urlencoded

Mutual TLS er frivillig for Confidential Clients, men obligatorisk for mobil-apper.

Plassering

Navn

Type

Påkrevd

Beskrivelse

Plassering

Navn

Type

Påkrevd

Beskrivelse

Body

client_id

string

Ja

Client ID verdien



redirect_uri

string

Ja

Redirect URL. Må være en URL som helsenorge har forhåndsregistrert på klienten.



response_type

string

Ja

Skal ha verdien "code"



response_mode

string

Ja

Må være “form_post” eller “query”. “form_post” skal benyttes i alle tilfeller bortsett fra hvis det er en mobilapp.



state

string (min 10 - max 1000 tegn)

Ja

Tilfeldig kryptografisk verdi som genereres av klienten og som returneres ved redirect tilbake til klienten etter fullført autentisering



nonce

string (min 10 - max 1000 tegn)

Ja

Tilfeldig kryptografisk verdi som genereres av klienten og som returneres som en del av ID-tokenet



ui_locales

string

Ja

Språk som brukergrensesnittet skal ha, må ha verdien "nb"



scope

string

Ja

Må inneholde "openid" og evnt. "offline_access" i tillegg dersom klienten skal kunne få utstedt “refresh-token”.

(Øvrige tilganger klienten får styres av konfigurasjonen av klienten på Helsenorge).



code_challenge

string

Ja

PKCE, generer først en code_verifier som er en kryptografisk tilfeldig streng mellom 43-128 tegn, gjør deretter følgende for å få code_challenge verdien: BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))



code_challenge_method

string

Ja

PKCE, skal ha verdien "S256"



client_assertion_type

string

Kun for confidential client, benyttes ikke for mobil-apper.

Hvis confidential client så skal verdien være “urn:ietf:params:oauth:client-assertion-type:jwt-bearer”



client_assertion

string

Kun for confidential client, benyttes ikke for mobil-app’er.

Hvis confidential client så skal verdien inneholde et JWT

Response - Vellykket

HTTP/1.1 201 Created
Content-Type: application/json

Plassering

Navn

Type

Beskrivelse



Plassering

Navn

Type

Beskrivelse



Body

request_uri

string

Verdi, generert av Helenorge, returneres og klient skal sende denne inn til authorize endepunktet.



expires_in

int

Levetid på request_uri i sekunder, er default 30 minutter.

Response - Feilet

Plassering

Navn

Verdi

Plassering

Navn

Verdi

Body

error





error_description



Mulige feilkoder

HTTP statuskode

Feilkode

Beskrivelse

HTTP statuskode

Feilkode

Beskrivelse

400

invalid_request

The request is missing a required parameter, includes an
invalid parameter value, includes a parameter more than
once, or is otherwise malformed.

400

unauthorized_client

The client is not authorized to request an authorization
code using this method.

400

access_denied

The resource owner or authorization server denied the
request.

400

unsupported_response_type

The authorization server does not support obtaining an
authorization code using this method.

400

invalid_scope

The requested scope is invalid, unknown, or malformed.

400

server_error

The authorization server encountered an unexpected
condition that prevented it from fulfilling the request.
(This error code is needed because a 500 Internal Server
Error HTTP status code cannot be returned to the client
via an HTTP redirect.)

503



The authorization server is currently unable to handle
the request due to a temporary overloading or maintenance
of the server.