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

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.

Gå hit for å 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_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...