Publisert - 06.05.2026

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

For å sende inn en SFM-id må du bruke en JSON-struktur for formålet. 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 understrek.

Token-endepunktet

Du kan gjøre et kall til Token-endepunktet, ved å sende inn JSON-strukturen i client assertion-objektet. Dette er det anbefalte mønsteret.

Det finnes også et annet mønster (se under), der klienten kan bruke PAR-endepunktet ved å sende inn JSON-strukturen i et Request-object. Dette kan brukes hvis din klient ikke har mulighet til å legge til SFM-id i client assertion-objektet. Dette er som sagt ikke anbefalt.

Verdien for grant_type vil i dette tilfellet være refresh_token.

{
  "alg": "PS256",
  "kid": "B2C61A07EE0661237D19BEE1E0A1463C",
  "typ": "client-authentication+jwt"
}.{
  "authorization_details":
  [{
    "type": "nhn:sfm:journal-id",
    "value": {
     "journal_id": "1231231234-34213412-432423-4233"
   },
   {
    "type":"helseid_authorization",
    "practitioner_role": {
      "organization": {
        "identifier": {
          "system":"urn:oid:1.0.6523",
          "type":"ENH",
          "value":"NO:ORGNR:972418013:974042436"
          }
       }
      }
  }],
  "sub": "f7cd1256-0526-4b5a-b4c3-f054c984ace8",
  "iat": "1716644273",
  "jti": "cf6a320674cf44cba9177ac6f84103a3",
  "nbf": 1716644273,
  "exp": 1716644333,
  "iss": "f7cd1256-0526-4b5a-b4c3-f054c984ace8",
  "aud": "https://helseid-sts.test.nhn.no"
}.[Signature]

PAR-endepunktet

Hvis klienten din ikke har mulighet til å bruke authorization_details i Token-endepunktet, kan du bruke et Request-objectPAR-endpunktet. I de aller fleste tilfellene vil det være mest praktisk å sende inn en SFM-id i Token-endepunktet, som sett ovenfor.

Eksempelet under viser en struktur for en SFM-id som bruker authorization_details-claimet, sendt inn som et Request-objekt i et kall til PAR-endpunktet.

"authorization_details":
[{
    "type": "nhn:sfm:journal-id",
    "value": {
      "journal_id": "ed30a6a5-4834-40be-a32b-1e4f5217e378"
    }
 }]

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.

Søk i Utviklerportalen

Søket er fullført!