02 - Helsepersonell innlogget i eksternt system

Løsningskomponenter og informasjonsflyt

 

 

Sekvensen er som følger:

  • Helsepersonell logger på systemet (Web-server applikasjon) ved å benytte HelseID (OpenID Connect flyt)

  • Systemet får et ID-token (som gir informasjon om pålogget bruker)

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

  • Helsenorge Sikkerhetstjeneste autentiserer klienten (her Web-server applikasjon back-end)

  • Helsenorge Sikkerhetstjeneste sjekker hvilke autorisasjoner den aktuelle system har (eventuelt i context av innlogget bruker). Sikkerhetstjenesten gir ut et AcsessToken som representerer hvilke rettigheter systemet/innlogget bruker har.

  • Web-server applikasjon 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.

  • Ressurs returneres til Web-server back-end og kan inngå i dennes respons til pålogget bruker.

Teknologi og forutsetninger

Hvordan benytte 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

HTTP metode: POST

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

urn:ietf:params:oauth:grant-type:token-exchange



client_id

En GUID som identifiserer klienten

Utstedes av NHN

client_secret

Tilhørende passord til klienten

Utstedes av NHN

HelseIdToken

ID-token utstedt fra HelseID til klienten og som representerer innlogget bruker.

Mottatt av HelseID ifm pålogging av bruker

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

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>&HelseIdToken=<HelseID IdToken>' \
<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>, "HelseIdToken":<HelseID IdToken>' \
<URL>  (Test eller produksjon, se over)

Response

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