V3 - OpenID Connect /API-tilgang (IdToken og AccessToken)

Innledning

Alle eksterne systemer og applikasjoner som opererer i innbygger/pasient kontekst skal benytte denne versjonen av OpenID tjenesten. Hvilke sikkerhetsopsjoner som kan/skal benyttes er angitt i tabellen under:

OpenID opsjon

Confidential clients (web-server clients)

Public clients (mobil-app eller Single Page Application)

OpenID opsjon

Confidential clients (web-server clients)

Public clients (mobil-app eller Single Page Application)

/par

Frivillig å benytte /par (endret fra påkrevd til frivillig Q1-2023)

Påkrevet

  • PKCE: Påkrevd

/authorize

Påkrevet

  • PKCE: Påkrevd om man ikke benytter /par

Påkrevet

/token - grant_type=”authorization_code”

Påkrevet

  • Client Assertion: Påkrevd

  • PKCE: Påkrevd

Påkrevet

  • Client Assertion: Påkrevd

  • PKCE: Påkrevd

RefreshToken

Frivillig

Frivillig, men krever at biometri eller ekstra PIN-kode er satt opp for tilgang til applikasjon dersom det skal kunne benyttes.

Mutual TLS (mtls)

Frivillig

Påkrevd

Kall til Helsenorge eller PVK API’er

Frivillig

Frivillig

Endepunkter og “root-of-trust”

  • Root of trust er det såkalte weel-known endepunktet for OIDC:

    • [Miljøets base URL]/sts/oidcprov/v3/.well-known/openid-configuration

    • De forskjellige test-miljøenes base URL (og Prod) finner du HER.

  • Dette endepunktet gir URL til alle øvrige endepunktene i OIDC (for aktuelt miljø).

    • Eksempel fra TEST01 (https://eksternapi.hn.test.nhn.no/sts/oidcprov/v3/.well-known/openid-configuration)

    • {"issuer":"https://eksternapi.hn.test.nhn.no/sts/oidcprov/v3","authorization_endpoint":"https://tjenester.hn.test.nhn.no/sts/oidcprov/v2/authorize","token_endpoint":"https://eksternapi.hn.test.nhn.no/sts/oidcprov/v3/token","end_session_endpoint":"https://tjenester.hn.test.nhn.no/sts/oidcprov/v2/logout","revocation_endpoint":"https://eksternapi.hn.test.nhn.no/sts/oidcprov/v1/revoke","jwks_uri":"https://eksternapi.hn.test.nhn.no/sts/oidcprov/v3/jwk","response_types_supported":["code","id_token","id_token token"],"response_modes_supported":["query","form_post"],"subject_types_supported":["pairwise"],"id_token_signing_alg_values_supported":["RS256"],"scopes_supported":["openid"],"ui_locales_supported":["nb","nn"],"acr_values_supported":["Level4"],"pushed_authorization_request_endpoint":"https://eksternapi.hn.test.nhn.no/sts/oidcprov/v1/par","mtls_endpoint_aliases":{"token_endpoint":"https://eksternapi-mtls.hn.test.nhn.no/sts/oidcprov/v3/token","revocation_endpoint":"https://eksternapi-mtls.hn.test.nhn.no/sts/oidcprov/v1/revoke","pushed_authorization_request_endpoint":"https://eksternapi-mtls.hn.test.nhn.no/sts/oidcprov/v1/par"}}

  • Ved validering av ID-token som mottas, skal sertifikatkjeden som returneres fra /jwk-endepunktet benyttes

    • jwk-endepunkt fra eksemplet over (TEST01): https://eksternapi.hn.test.nhn.no/sts/oidcprov/v3/jwk

    • Responsen fra /jwk- endepunktet kan “cashes” så lenge ikke key-identifier i mottatt token endre seg (“kid” i JWT-header)

OpenId Connect flyt

Uten bruk av /par Kun tilatt for Confidential clients (server side web apps)

Med bruk av /par Public clients (Mobil App)