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 en request_uri-parameter til bruk mot Authorize-endepunktet.
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 challengefor 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.
Den følgende parameteren 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 denne parameteren er en eller flere registrerte API-ressurser (audiences). Hvis flere ressurser er satt i parameteren, kan klienten gjøre en Token-forespørsel for hver ressurs senere. Hensikten med denne parameteren er å gjøre prosessen enklere for å hente ut et Access-token for en API-ressurs.nonce: HelseID vil gi tilbake nonce-verdien i ID-tokenetacr_values: hvilke IDP-er som kan tilbys for en brukerprompt: Du kan bruke følgende verdi:login: Innloggingssiden vil bli vist, selv om brukeren allerede er logget på med en gyldig sesjon, vær klar over at dette vil deaktivere SSO for brukeren.
response_mode: Kan brukes for å sende svarparametre fra HelseID inn i klienten sin nettleser via HTTP POST-metoden. Se OAuth 2.0 Form Post Response Mode.
Hvis du har behov for å legge ved organisasjonsnummer, SFM-id og/eller Tillitsrammeverk i PAR-endepunktet
Du kan bruke et Request-object for dette, men i de fleste tilfellene vil det være mest praktisk å sende inn organisasjonsnumre, SFM-id, og/eller Tillitsrammeverk i Token-endepunktet.
Vanligvis vil ikke klienten vite hvem brukeren er før vedkommende har logget inn. Siden et Request-object må sendes inn via PAR-endepunktet betyr dette at klienten må gjennomføre to brukerinnlogginger mot HelseID hvis de skal sende organisasjonsinformasjon denne veien. Derfor er det mer hensiktsmessig å bruke Token-endepunktet for dette, med bruk av refresh_token-flyten, for eksempel ved bruk av organisasjonsnumre.
Hvis du likevel ikke har mulighet for å bruke Token-endepunktet for dette, kan du bruke parameteren request:
request: I stedet for å sette alle parametre i kallet som enkle strengeparametre, må du legge alle parametre i en signert JWT. Unntaket er parametreneclient_assertion, ogclient_assertion_type, som må settes i bodyen. Det signerte JWT-objektet kan også brukes for å legge ved organisasjonsnumre. JWT-objektet må være signert med den samme privatnøkkelen som blir brukt for klientautentisering (client_assertionovenfor).
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&
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&
state=CfDJ8LVCUUdmXXVMi6H...HHDM86inxQaXb4eBLma8REL&
resource=nhn%3Apersontjenesten&
resource=nhn%3Akjernejournal
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 brukerinnlogging 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.