SFM-id for multi-tenant-klienter

Kontekst: Sentral forskrivningsmodul bruker mekanismen SFM-id for single-tentant-klienter som bruker HelseID.

Funksjonaliteten som er beskrevet i dette dokumentet, viser hvordan en multi-tenant-klient kan ta i bruk denne mekanismen.

Innsending av SFM-id

Klienter (multi-tenant) kan sende inn et strukturert claim i forespørselen til HelseID. Dette claimet kan sendes enten

  1. som en del av et Request-objekt i kall til PAR-endepunktet (eller Authorization-endepunktet, hvis klienten ennå ikke har tatt i bruk PAR) eller
  2. som en del av client_assertion i kall til Token-endepunktet

Innholdet i det strukturerte claimet ser slik ut:

{
  "type": "nhn:sfm:journal-id",
  "value": {
     "journal_id": "1231231234-34213412-432423-4233"
  }
}

Verdien for type må alltid være nhn:sfm:journal-id, og verdien $.value.journal_id må være en UUID.

Legg merke til at typen nhn:sfm:journal-id har en syntaks med bindestrek, mens claimet journal_id har en syntaks med underscore.

Eksempel på kall til HelseID

Ved innsending av informasjon i Request-objekt, må klienten bruke claimet authorization_details:

"authorization_details":
[{
    "type": "nhn:sfm:journal-id",
    "value": {
      "journal_id": "ed30a6a5-4834-40be-a32b-1e4f5217e378"
    }
 },
 {
   "type":"helseid_authorization",
   "practitioner_role":
   {
     "organization":
     {
       "identifier":
       {
         "system":"urn:oid:1.0.6523",
         "type":"ENH",
         "value":"NO:ORGNR:<consumer organization number>:<consumer child organization number>",
       }
    }
  }
}]

Ved innsending av informasjon i client_assertion bør klienten erstatte claim-typen authorization_details med assertion_details, men authorization_details blir fremdeles godkjent. Vær oppmerksom på at det ikke er godtatt å sende inn både authorization_details og assertion_details.

Claim i tokenet

Claimet fra HelseID (i Access-tokenet) ser slik ut:

{
  ...
  "nhn:sfm:journal-id" : "ed30a6a5-4834-40be-a32b-1e4f5217e378",
  ...
}

Feilmeldinger

HelseID validerer verdiene i kallet til enten Token-endepunktet eller PAR-endepunktet, og gir tilbake HTTP-koden 400 (Bad Request) med feilmeldingen invalid_request hvis innholdet ikke er korrekt.

Hvis klienten ikke har tilgang til scopet nhn:sfm:journal-id, vil HelseID gi tilbake HTTP-koden 400 (Bad Request) med feilmeldingen invalid_scope.

Se dokumentet Feilmeldinger for beskrivelser av typiske feilmeldinger fra HelseID.