Kjøretidssjekk for multi-tenant-klienter

Når en 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

info
Kjøretidssjekk blir gradvis innført for tjenestene fra Norsk helsenett. Det kan derfor være tjenester dere får gyldig access token for, selv om virksomheten egentlig ikke skulle hatt tilgang.

Frem til sjekken er på plass for alle tjenester, så er leverandører av multi-tenant-systemer ansvarlige for å sjekke om virksomhetene har tilgang til tjenestene.
Dette gjøres ved å bruke API-et vårt, slik beskrevet lenger ned.

Hvordan får en virksomhet (tenant) tilgang til tjenester?

info
Merk at steg #1a og #1b kan simuleres i testmiljøet
  1. Steg #1a
    Medlemskap 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
  2. Steg #1b
    Altinn-delegering

    Virksomheten må delegere tilgang til leverandøren via Altinn.

    Les om hvordan tilgang delegeres
  3. Steg #2
    Sjekk virksomhetens tilgang til tjenester

    Bruk API-et vårt for å sjekke om virksomheten har tilgang til scopene som trengs for å konsumere ønskede tjenester.

  4. Steg #3
    Hent 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.

info
Dette er kun mulig i testmiljøet. I produksjonsmiljøet må virksomhetene bestille tjenestene, noe som innebærer medlemskap av Helsenettet og aksept av bruksvilkår for tjenestene.

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 dokumentasjon

Eksempel 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.

Gå til årsakskoder

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_is_not_allowed_org_section Dette organisasjonsleddet er ikke 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.
Loading...

Henter informasjon...

Loading...