01 - System til System

Løsningskomponenter og informasjonsflyt

 

Sekvensen er som følger:

  • Når systemet trenger å benytte et API på Helsenorge eller i PVK, gjør systemet et kall mot Helsenorge Sikkerhetstjeneste.

  • Helsenorge Sikkerhetstjeneste autentiserer systemet/klienten.

  • Helsenorge Sikkerhetstjeneste sjekker hvilke autorisasjoner det aktuelle system/klient har og gir ut et AcsessToken som representerer disse rettighetene.

  • Systemet kaller et Helsenorge API-endepunkt og ber om tilgang til ressurs, AcsessToken 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.

Teknologi og forutsetninger

  • Helsenorge sikkerhetstjeneste er eksponert i et endepunkt der den representerer en STS - Secure Token Service

  • Det eksterne systemet autentiserer seg ved å benytte såkalt "Client Credentials Grant" slik dette er spesifisert i Kapittel 4.4 i Oauth2 spesifikasjonen

  • Det kreves at klienten er "Confidential client", dvs. at den kan beskytte en hemmelighet

Hvordan benytte Helsenorge Sikkerhetstjeneste

URL’er til Helsenorge sikkerhetstjeneste

Hvert miljø har sin egen STS og tokenet som returneres fra denne gir kun tilgang til API kall mot samme miljø.

https://[BaseURL]/sts/Token

Base URL til endepunktene i de forskjellige miljøene finner du her: https://helsenorge.atlassian.net/wiki/spaces/HELSENORGE/pages/1552384092

Kall til Helsenorge sikkerhetstjeneste

  • HTTP verb: POST

  • Man kan velge om body (med tilhørende angivelse i header) skal være:

    • application/x-www-form-urlencoded

    • application/json

Request

Headers

Key

Value

Key

Value

Content-Type

application/x-www-form-urlencoded eller application/json

Body

Key

Value

Kommentar

Key

Value

Kommentar

grant_type

client_credentials



client_id

En GUID som identifiserer klienten

Utstedes av NHN

client_secret

Tilhørende passord til klienten

Utstedes av NHN

Response

Vellykket response

Parameter

Verdi

Kommentar

Parameter

Verdi

Kommentar

access_token

Generert referanse JWT

Er av type JWT med claims for klient id og referanse token.

Benyttes videre for kall til andre API'er til Helsenorge.

expires_in

30 minutter i sekunder



token_type

bearer



Feil response

Parameter

Verdi

Parameter

Verdi

code

Tallkode for referanse til type feil internt i Helsenorge

message

Eventuell beskrivelse relatert til feilen

errorCategory

Feilkategori

statusCode

Samsvarer med HttpStatusCode til responsen

korrelasjonsId

En GUID for referanse til logger internt i Helsenorge

Eksempel

Følgende CURL kommandoer kan benyttes for å teste integrasjonen. Erstatt <tekst> med reelle verdier.

Request

Form urlencoded

curl -X POST \
-H 'Content-Type=application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials&client_id=<Client Id (GUID)>&client_secret=<Client Secret>' \
<URL> (Test eller produksjon, se over)

JSON

curl -X POST \
-H "Content-Type: application/json" \
-d '{"grant_type": "client_credentials", "client_id": "<Client Id (GUID)>", "client_secret": "<Client Secret>' \
<URL>  (Test eller produksjon, se over)

Response

{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsInZlciI6MSwidHlwXzIiOiJyZWYifQ.eyJqdGkiOiJlNjJmNGExYS1hYmZiLTQ3OGYtYjUwOS0xMzZlM
zhkYTVhYzIiLCJjbGllbnRfaWQiOiI1ZDRmNzlhNS00NTliLTQyOWEtOTcwYS03ZWRjMjQzMjk2MGMiLCJjbGllbnRfbmFtZSI6IkVrc3Rlcm4gdGVzd
GtsaWVudCIsInJlZl90b2tlbiI6IlZhNEhId2xjc1l6aTlZN1k3bEp5akw1V2dZbXVQaHVZakNDblp5bUdGRm8iLCJyZWZfdG9rZW5fdHlwZSI6IkZ1b
GwiLCJ6b25lIjoiZWtzdGVybl9pbnRlcm5ldHQiLCJuYmYiOjE1NTQxMDE4NTMsImV4cCI6MTU1NDEwMzY1MywiaWF0IjoxNTU0MTAxODUzLCJpc3MiO
iJzaWtrZXJoZXQuaGVsc2Vub3JnZS5ubyJ9.hZvCrBx2yNiMzP3_dx0tYBxCookFFQ8EDWtPp3PfUCQ",
"expires_in": 1800,
"token_type": "bearer"
}