Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootIdentitetssløring af ansatte i sundhedsvæsnet (IDSAS) - Leverancebeskrivelse
includeroottrue


Indhold

Table of Contents

Komponenter

Dette dokument dækker følgende komponenter på NSP:

...

  • Type: SOAP Webservice

  • Filnavn: idsas-registration.war

  • Url: <serverurl>/idsas-registration

  • Status-url: <serverurl>/idsas-registration/status

  • DKS-config: <serverurl>/idsas-registration/dksconfig

  • Type: SOAP Webservice

  • Filnavn: idsas-lookup.war

  • Url: <serverurl>/idsas-lookup

  • Status-url: <serverurl>/idsas-lookup/status

  • DKS-config: <serverurl>/idsas-lookup/dksconfig

  • Type: SOAP Webservice

  • Filnavn: idsas-salt.war

  • Url: <serverurl>/idsas-salt

  • Status-url: <serverurl>/idsas-salt/status

  • DKS-config: <serverurl>/idsas-salt/dksconfig

  • Type: Webservlet
  • Filnavn: idsas-operations.war
  • Url: <serverurl>/idsas-operations
  • Status-url: <serverurl>/idsas-operations/status

  • Version-url: <serverurl>/idsas-operations/version

Konfiguration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filerne idsas-registration.propertiesidsas-lookup.properties, idsas-salt.properties og idsas-operations.properties. I alle tilfælde skal de placeres i følgende WildFly modul:

...

Property

Beskrivelse

Påkrævet

Default værdi

idsas.patient.id.salt

Salt til hashing af patientId'ere. Se afsnittet længere nede.

Ja


log4j konfiguration

Log4j konfiguration for begge services findes i samme wildfly modul som servicekonfigurationen

Se yderligere opsætning i installationsvejledningen.

Salt til hashing af patientId'ere

Til hashing af patientId'ere i databasen, anvendes den salt som er angivet i property konfigurations-filen "idsas.-patient.-id-salt.saltproperties". Salten angives som en base64-encoded tekststreng. to tekststrenge; en prefix og en postfix. 

Det er vigtigt, at denne salt er stabil og aldrig ændrer sig, efter at den er blevet valgt.

...

Der er ingen særlige krav til salten, ud over at den er stabil.

Man kan fx bruge openssl til at genererer en saltefterfølgende slå patientId'er op i tabellen med følgende SQL, som genererer hash-værdien på samme måde som Java-koden i servicen:

Code Block
languagebashjava
titleSQL-query med patientId
linenumberstrue
collapsetrue
select sha2(concat('saltprefix', '1111111118', 'saltpostfix'), 256);openssl rand -base64 16

Overvågning

Alle IDSAS services udstiller en overvågningsside, som findes i listen af komponenter.

Fortolkning af overvågningsside

Overvågningssiderne returnerer enten:

  • HTTP 200, hvis servicen i øjeblikket kører fint.
  • HTTP 503, hvis der er opstået en fejl der kræver indgriben.

Audit-logning

Hvert servicekald medfører en ny indgang i auditloggen, som kan være udfyldt med følgende komponenter, afhængig af konteksten:

...

Code Block
languagetext
titleCreateBlurring eksempel
collapsetrue
{
  "time": "2023-06-12T11:42:23.664Z",
  "category": "dk.sds.nsp.audit.log.idsas",
  "audit": {
    "timestamp": "2023-06-12T13:42:22.972+02:00",
    "components": [
      {
        "component": "IDSAS",
        "contexts": [
          {
            "context": "createBlurring",
            "information": [
              {
                "key": "cpr",
                "type": "RPI",
                "value": "1234567890"
              },
              {
                "key": "cvr",
                "type": "NPI",
                "value": "33257872"
              }
            ]
          }
        ]
      }
    ]
  },
  "access": {
    "code": 200,
    "duration": 95,
    "httpHeaders": {
      "Content-Type": "text/xml;charset=UTF-8",
      "SOAPAction": "CreateBlurring"
    },
    "httpHost": "localhost",
    "idCardAttributes": {
      "medcom:CareProviderID": "33257872",
      "medcom:CareProviderName": "Sundhedsdatastyrelsen",
      "medcom:ITSystemName": "Service Consumer Test",
      "medcom:UserAuthorizationCode": "6QF17",
      "medcom:UserRole": "7170",
      "sosi:AuthenticationLevel": "4",
      "sosi:IDCardID": "SIjvZBkfZ1yAWSpYFcLpvw==",
      "sosi:IDCardType": "user",
      "sosi:IDCardVersion": "1.0.1"
    },
    "method": "POST",
    "path": "/idsas/20230601/service",
    "query": "",
    "port": 8080,
    "protocol": "http",
    "reqSize": 7204,
    "resSize": 211,
    "soapHeaders": {
      "FlowID": "72111931-fe3b-4956-bea3-20e8c5be9ce0",
      "Issuer": "TEST1-NSP-STS",
      "MessageID": "76315a15-0fb2-4df7-9e3e-53a3b28fb700",
      "NameID": "urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0"
    },
    "threadId": "default task-1",
    "time": "2023-06-12T13:42:22.968+02:00",
    "stats": {
      "handlerDuration": 583,
      "RequestContentDuration": 41,
      "ResponseContentDuration": 0,
      "SecurityProtocolRequestDuration": 368,
      "SecurityProtocolResponseDuration": 0,
      "bufferAllocated": true,
      "usedBuffers": 1,
      "activeBuffersInPool": 1,
      "idleBuffersInPool": 0
    }
  }
}

Whitelisting af anvendere

De enkelte anvenderes ID skal whitelistes til at bruge IDSAS. Et ID kan enten være et CVR eller navnet på et system, alt efter hvad der whitelistes til.

...

Note-feltet kan fx anvendes til at referere en supportsag eller lignende for sporingshensyn. Kun actor_id og type er obligatorisk.

Baggrundsjobs

Oprettelse/fornyelse af salt

Oprettelse/fornyelse af salt sker via et HTTP GET kald til <serverurl>/idsas-operations/renew-salt

Dette kald skal laves for at oprette det første salt, og efterfølgende for at forny saltet, når der er behov.

Oprydningsjob

Oprydningsjobbet startes via et HTTP GET kald til <serverurl>/idsas-operations/cleanup-blurrings

...