3. Ekstern applikasjon kaller Helsenorge API i systemkontekst

3. Ekstern applikasjon kaller Helsenorge API i systemkontekst

Innledning

Tidligere måtte API-klienter, i system-til-system kontekst, autentisere seg mot Helsenorge sin egen Oauth2 tjeneste (Helsenorge STS). Videre var det dennes /Token endepunkt som måtte kontaktes for å få AksessToken som gir tilgang til API’ene på Helsenorge.

Det er nå implementert en løsning på Helsenorge der det støttes AksessToken fra HelseId for tilgang til API’ene på Helsenorge i maskin-til-maksin kontekst.

Dette betyr at:

  • Alle nye API-klienter skal benytte HelseId selvbetjening for å be om tilgang til de Helsenorge API’er som opererer i maskin-til-maskin kontekst. I HelseId er alle metoder i Helsenorge external-API definert med hvert sitt scope. . (Se HER for hvordan aksesstoken skal legges ved i request til Helsenorge ekstern-API).

  • Alle eksisterende API-klienter som tidligere har benyttet Helsnorge STS direkte, skal gå over til å benytte HelseId.

Vedrørende bruk av DPoP sikkerhetsmeknisme mot Helsenoreg API’ene:

  • I første versjon av støttes ikke DPoP mot Helsenorge API’ene. Det må da i en periode benyttes vanlig bearer-token.

  • Fra og med Release 25.05 (prodsettes 7. mai 2025), kan aktører også benytte DPoP token. Men, i denne releasen validere vi ikke at sikkerhetsmekanismen i DPoP er oppfylt.

  • Fra og med Release 25.07 (prodsettes 18. juni 2025) vil det valideres at sikkerhetsmenismen i DPoP er benyttet korrekt.

  • Senere (koordinert med HelseId) vil det ikke lenger tillates bruk av bearer-token. Dette vil varsles separat.

Alle aktører bør benytte DPoP mot Helsenorge Ekstren-API så snart som mulig etter 7. mai 2025. Se HER om detaljer om DPoP, samt hvordan det valideres i Helsenorge Ekstren-API.

image-20240429-075003.png

Lenker til informasjon om HelseID:

Løsningskomponenter og informasjonsflyt ved bruk av HelseId for tilgang til Helsenorge API’er

 

 

Sekvensen er som følger:

  • Når systemet trenger å benytte et API på Helsenorge eller i PVK, gjør systemet et kall mot HelseId som API-klient i maskin-til-maksin kontekst

    • Leverandøren må ha registrert et Klient system i HelseId selvbetjening

    • Leverandøren må ha opprettet en klientkonfigurasjon (instans av klientsystemet) som har bedt om/fått tilgang til den aktuelle API-funksjon i Helsenorge Ekstern-API i HelseId selvbetjening

  • HelseId autentiserer API-klienten.

  • HelseID sjekker hvilke autorisasjoner den aktuelle API-klient har bedt om/fått, og gir ut et AcsessToken som representerer disse rettighetene.

  • Systemet kaller et Helsenorge API-endepunkt og ber om tilgang til ressurs, AcsessToken fra HelseId er med i requesten

  • Helsenorge API-tjeneste kontrollerer at de rettigheter som trengs er representert av AcsessTokenet.

  • API-kall utføres og resultat returneres til systemet.

Hvordan kalle et Helsenorge API (etter å ha fått AccessToken fra HelseId)

For detaljer om endepunkt for det enkelte API og deres kontrakt, henvises til beskrivelsen av det enkelte API. Accesstoken man har fått fra Sikkerhetstjenesten inkluderes i HTPP-headeren i tjenestekallene til API'ene.

API'ene på Helsenorge har følgende generelle URL: https://eksternapi.helsenorge.no/<[Løsningsområde]>/<Tjeneste>

Uten bruk av DPoP (midlertidig løsning)

Eks på bruk av AccessToken i API-kall:

curl -X POST \
-H "Content-Type: application/json" -H "Authorization: Bearer <access_token>"\
-d '{"<Key1>": "<Value1>", ...}' \
<URL til tjeneste>

Ved bruk av DPoP

Eks på bruk av AccessToken i API-kall:

curl -X POST \
-H "Content-Type: application/json" -H "Authorization: DPoP <dpop_token>"\
-d '{"<Key1>": "<Value1>", ...}' \
<URL til tjeneste>

Utgått levetid på AccessToken/DPoP-token

Dersom man benytter et AccessToken som hår gått ut på tid, vil man få HTTP-error respons: 403 Forbidden

Dersom dette skjer må det eksterne systemet gjennomføre en ny Autentisering mot sikkerhetstjenesten og få nytt AccessToken (Det støttes med andre ord ikke såkalte RefreshTokens).