PAR-endepunktet (Pushed Authorization Request)
PAR-endepunktet er tilgjengelig i HelseID på stien /connect/par
, relatert til navnet på tjeneren. For eksempel:
https://helseid-sts.test.nhn.no/connect/par
Bruken av dette endepunktet er beskrevet her.
PAR-endepunktet brukes når en klient gjør en POST-forespørsel til HelseID for å få tilbake et request_uri
parameter til bruk mot Authorize-endepunktet. Alle parametre som kan bli brukt mot Authorize-endepunktet blir godtatt, inkludert PKCE, Resource Indicators og parametre for OpenID Connect med HelseID-spesifikke parametre.
⚠️ Bruk av PAR-endepunktet
Vær oppmerksom på at for nye klienter som vil logge på en bruker, så er bruken av PAR-endepunktet obligatorisk, som beskrevet i sikkerhetsprofilen for HelseID.
Kall til PAR-endepunktet
De følgende parametrene er obligatoriske:
client_id
: Identifiserer klienten. Du får denne verdien i HelseID Selvbetjening.scope
: Ett eller flere scopes, separert med mellomrom, som beskrevet her [OAuth 2.0] og her [OpenID Connect]redirect_uri
: Denne verdien må være eksakt lik enhver redirect-URI som er satt opp i HelseID Selvbetjeningresponse_type
: Verdien må alltid værecode
(andre flyter, slik som Implicit eller Hybrid er ikke godtatt)code_challenge
: Dette ercode challenge
for bruken av PKCEcode_challenge_method
: Metoden som brukes forcode challenge
. Verdien må væreS256
.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
.
Det følgende parameteret er anbefalt:
state
: HelseID sender tilbake denne verdien i Token-responsen. Verdien kan brukes for å holde på tilstanden mellom klient og HelseID ved å korrelere kall og respons for å forhindre CSRF (Cross-site request forgery)-angrep.
De følgende parametrene kan brukes:
resource
: Verdien i dette parameteret er en eller flere registrerte API-ressurser (audiences). Hvis flere ressurser er satt i parameteret, kan klienten gjøre en Token-forespørsel for hver ressurs senere. Hensikten med dette parameteret er å gjøre prosessen for å hente et Access-token for et enkelt API enklere.request
: I stedet for å sette alle parametre i kallet som enkle strengeparametre, kan du legge en delmengde, eller alle parametre i en signert JWT. Det signerte JWT-objektet kan også brukes for å legge ved etauthorization_details
-objekt som kan inneholde informasjon om organisasjonsnumre og/eller innhold fornhn:tillitsrammeverk:attest
. JWT-objektet må være signert med den samme privatnøkkelen som blir brukt for klientautentisering (client_assertion
ovenfor).prompt
: Du kan bruke følgende verdi:login
: Påloggingssiden vil bli vist, selv om brukeren allerede er logget på med en gyldig sesjon
nonce
: HelseID vil gi tilbake nonce-verdien i ID-tokenet
Et eksempel på innhold ved bruk av PAR-endepunktet:
POST /connect/par HTTP/1.1
Host: helseid-sts.nhn.no
Content-Type: application/x-www-form-urlencoded
client_id=973f112f-47e5-4fb2-b211-43c242b7fce0&
scope=openid%20profile%20nhn%3Ahelseid-public-samplecode%2Fauthorization-code&
redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb
response_type=code&
state=duk681S8n00GsJpe7n9boxdzen&
code_challenge=jVtDOI4ss7|YHwEOuOf1jFOJVg563bBMF65FBIQ453w&
code_challenge_method=S256&
client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&
client_assertion=eyJraWQiOiI0Mi...BV9rRG-3eI1Ksh0kQ1CwvzA
Respons fra PAR-endepunktet
Suksess-respons fra PAR-endepunktet inneholder to parametre i meldingen:
request_uri
: En verdi som korresponderer til verdiene i kallet til PAR-endepunktet. Denne brukes for brukerpålogging ved bruk av Authorize-endepunktet.
expires_in
: En verdi som beskriver tidspunktet når request_uri
-verdien ikke lenger er gyldig for HelseID som et positivt heltall. Tidspunktet beskrives i sekunder, og utløpstiden er vanligvis 600 sekunder.
Feil-respons
PAR-endepunktet gir feilmeldinger på samme format som Token-endepunktet eller Authorization-endepunktet. Se dette dokumentet for mer informasjon.