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 Selvbetjening
  • response_type: Verdien må alltid være code (andre flyter, slik som Implicit eller Hybrid er ikke godtatt)
  • code_challenge: Dette er code challenge for bruken av PKCE
  • code_challenge_method: Metoden som brukes for code challenge. Verdien må være S256.
  • 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.

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 et authorization_details-objekt som kan inneholde informasjon om organisasjonsnumre og/eller innhold for nhn: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.