Kjøretidssjekk for multi-tenant-klienter
Når en multi-tenant-klient ber om tilgang til et scope på vegne av en virksomhet (tenant), vil HelseID kontrollere om virksomheten har tilgang til scopet.
sequenceDiagram
title Sekvensdiagram for kjøretidssjekken
accTitle: Diagram som viser kjøretidssjekk ved forsøk på å hente tokens fra HelseID
actor EndUser as Sluttbruker representerer virksomhet
participant MultiTenantSystem as Multi-tenant-system
participant HelseId as helseid-sts.test.nhn.no/connect/token
EndUser ->> MultiTenantSystem: Vil aksessere informasjon [1]
MultiTenantSystem ->> HelseId: Forespør access token med ønskede scopes på vegne av brukerens virksomhet [2]
HelseId -->> HelseId: Sjekker virksomhetens tilgang til scopes
HelseId -->> MultiTenantSystem: Access token med eller uten ønskede scopes + metadata om avviste scopes
Les om scope og rejected_scope i HelseIDs dokumentasjon
Hvordan får en virksomhet (tenant) tilgang til tjenester?
-
Steg #1aMedlemskap og tjenestebestilling
Sørg for at virksomheten er medlem av Helsenettet og har bestilt de tjenestene den skal bruke.
Les om tjenester og hvordan de bestilles -
Steg #1bAltinn-delegering
Virksomheten må delegere tilgang til leverandøren via Altinn.
Les om hvordan tilgang delegeres -
Steg #2Sjekk virksomhetens tilgang til tjenester
Bruk API-et vårt for å sjekke om virksomheten har tilgang til scopene som trengs for å konsumere ønskede tjenester.
-
Steg #3Hent tokens
Multi-tenant-klienten kan hente tokens på vegne av virksomheten.
Simulering av tjenestebestillinger
For å teste kjøretidssjekken i testmiljøet, må dere reservere syntetiske testenheter og simulere tjenestebestillinger.
Gå hit for å simulere tjenestebestillinger
Sjekk tilgang via API
For å tilrettelegge for en god brukeropplevelse, kan dere — i forkant av forespørsler til HelseIDs token-endepunkt — sjekke om virksomheter har tilgang til spesifikke scopes.
Happy path
sequenceDiagram
title Sekvensdiagram for sjekk av virksomheters tilgang til scopes
accTitle: Diagram som viser at man bør sjekke virksomheters tilgang til scopes via API-et vårt før man prøver å hente tokens fra HelseID
actor EndUser as Sluttbruker representerer virksomhet
participant MultiTenantSystem as Multi-tenant-system
participant API as api.selvbetjening.test.nhn.no
participant HelseId as helseid-sts.test.nhn.no/connect/token
EndUser ->> MultiTenantSystem: Vil aksessere informasjon [1]
MultiTenantSystem ->> API: Sjekker tilgang til scopes [2]
API -->> MultiTenantSystem: Informasjon om scope-tilgang
MultiTenantSystem ->> HelseId: Forespør access token med ønskede scopes [3]
HelseID -->> MultiTenantSystem: Access token
Dere kan gjøre denne sjekken ved hjelp av API-et vi tilbyr. Vi viser noen eksempler på input og output nedenfor.
Gå hit for å se på API-ets dokumentasjonEksempel 1: Tilgang i orden
Input
[
{
"orgNo": "123123123",
"scopes": ["nhn:kjernejournal/api"]
}
]Output
[
{
"orgNo": "123123123",
"scopes": [
{
"scope": "nhn:kjernejournal/api",
"authorized": true
}
]
}
]Eksempel 2: Manglende tilgang
Ved manglende tilgang, oppgis det en årsakskode med tilhørende metadata.
Input
[
{
"orgNo": "123123123",
"scopes": ["nhn:kjernejournal/api"]
}
]Output
[
{
"orgNo": "123123123",
"scopes": [
{
"scope": "nhn:kjernejournal/api",
"authorized": false,
"reasons": [
{
"code": "terms_not_accepted",
"text": {
"en": "The organization has not accepted terms of use for the service",
"nb": "Virksomheten har ikke bestilt tjenesten"
},
"infoUrl": "https://www.nhn.no/tjenester/kjernejournal/Hvordan-få-tilgang-til-kjernejournal"
}
]
}
]
}
]Årsakskoder for manglende tilgang
| Kode | Beskrivelse |
|---|---|
| terms_not_accepted | Virksomheten må akseptere vilkår for bruk for tjenesten |
| missing_delegation | Virksomheten har ikke delegert tilgang til dere |
| delegator_is_supplier | Dere kan ikke delegere til dere selv |
| delegator_is_subunit | Virksomheten er en underenhet. Kun hovedenheter er tillatt. |
| delegator_org_unknown | Virksomheten er ukjent. Den kan ha vært slettet fra enhetsregisteret. |
| client_missing_scope_access | Klienten har ikke tilgang til dette scopet. Sjekk klientens API-tilganger i selvbetjeningsportalen til HelseID. |