Page History
...
log4j konfiguration
Log4j konfiguration for begge alle services findes i samme wildfly modul bibliotek 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 konfigurations-filen "idsas-patient-id-salt.properties". Salten angives som 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.
Servicen kan ikke starten op, hvis salten ikke er korrekt angivet.
Der er ingen særlige krav til salten, ud over at den er stabil.
Følgende SQL kan bruges til at genskabe hash-værdien givet de to salt-værdier og patientId'et (som her i eksemplet er sat til "1111111118").
| Code Block | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
select sha2(concat('saltprefix', '1111111118', 'saltpostfix'), 256); |
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:
Overvågning
Alle DDTV 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:
Komponent | Kontekst | Type | Nøgle | Information | |||||
|---|---|---|---|---|---|---|---|---|---|
| DDTV | createBlurring | Personlig | patient-id | Id på borgeren | |||||
| DDTV | createBlurring | Personlig | patient-id-source | Typen af id (fx "cpr") | |||||
| DDTV | createBlurring | Personlig | hashed-patient-id | Hashed id på borgeren | |||||
| DDTV | createBlurring | Ikke personlig | actor-id | Id på organisationen | |||||
| DDTV | createBlurring | Ikke personlig | actor-id-source | Typen af id (fx "cvr") | |||||
| DDTV | createBlurring | Ikke personlig | expiry-date-time | Udløbsdato for slørring | |||||
| DDTV | getCurrentSalt | Ikke personlig | actor-id | Id på organisationen | |||||
| DDTV | getCurrentSalt | Ikke personlig | actor | ||||||
Komponent | Kontekst | Type | Nøgle | Information | |||||
| IDSAS | createBlurring | Personlig | patient-id | Id på borgeren | |||||
| IDSAS | createBlurring | Personlig | patient-id-source | Typen af id (fx "cprcvr") | |||||
| IDSASDDTV | createBlurringgetCurrentSalt | Ikke personligPersonlig | hashedbase64-patientencoded-idsalt | En base64 encoded string der indeholder den salt, der er returneret. | |||||
| DDTV | getBlurredOrganisations | Personlig | patient | Hashed id på borgeren | IDSAS | createBlurring | Ikke personlig | actor-id | Id på organisationenborgeren |
| IDSASDDTV | createBlurringgetBlurredOrganisations | Ikke personligPersonlig | actorpatient-id-source | Typen af id (fx "cvrcpr")IDSAS | |||||
| DDTV | |||||||||
| getBlurredOrganisations | |||||||||
| Personlig | |||||||||
| active- | |||||||||
| blurrings- | Udløbsdato for slørring | ||||||||
| IDSAS | getCurrentSalt | Ikke personlig | actor-id | Id på organisationen | |||||
| IDSAS | getCurrentSalt | Ikke personlig | actor-id-source | Typen af id (fx "cvr") | |||||
| IDSAS | getCurrentSalt | Ikke personlig | base64-encoded-salt | En base64 encoded string der indeholder den salt, der er returneret. | |||||
| IDSAS | getBlurredOrganisations | Personlig | patient-id | Id på borgeren | |||||
| IDSAS | getBlurredOrganisations | Personlig | patient-id-source | Typen af id (fx "cpr") | |||||
| IDSAS | getBlurredOrganisations | Personlig | active-blurrings-found | Hvorvidt der blev fundet sløringer for borgeren eller ej, i det pågældende opslag. Kan være "true" eller "false". | |||||
| found | Hvorvidt der blev fundet sløringer for borgeren eller ej, i det pågældende opslag. Kan være "true" eller "false". |
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
{
"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",
| ||||||
| Code Block | ||||||
| ||||||
{ "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": [ { "componentinformation": "IDSAS",[ "contexts": [ { { "contextkey": "createBlurringcpr", "informationtype": ["RPI", { "value": "1234567890" }, { "key": "cprcvr", "type": "RPINPI", "value": "123456789033257872" }, ] { } ] "key": "cvr", } ] }, "access": { "typecode": "NPI"200, "duration": 95, "httpHeaders": { "valueContent-Type": "33257872"text/xml;charset=UTF-8", "SOAPAction": "CreateBlurring" }, } "httpHost": "localhost", "idCardAttributes": { ]"medcom:CareProviderID": "33257872", "medcom:CareProviderName": "Sundhedsdatastyrelsen", } "medcom:ITSystemName": "Service ]Consumer Test", } ] }, "access": { "medcom:UserAuthorizationCode": "6QF17", "medcom:UserRole": "7170", "codesosi:AuthenticationLevel": 200"4", "durationsosi:IDCardID": 95"SIjvZBkfZ1yAWSpYFcLpvw==", "httpHeaderssosi:IDCardType": {"user", "Content-Typesosi:IDCardVersion": "text/xml;charset=UTF-8", 1.0.1" }, "SOAPActionmethod": "CreateBlurringPOST", }"path": "/idsas/20230601/service", "httpHostquery": "localhost", "idCardAttributesport": {8080, "medcom:CareProviderIDprotocol": "33257872http", "medcom:CareProviderNamereqSize": "Sundhedsdatastyrelsen"7204, "medcom:ITSystemName": "Service Consumer Test", "resSize": 211, "medcom:UserAuthorizationCodesoapHeaders": "6QF17",{ "medcom:UserRoleFlowID": "717072111931-fe3b-4956-bea3-20e8c5be9ce0", "sosi:AuthenticationLevelIssuer": "4TEST1-NSP-STS", "sosi:IDCardIDMessageID": "SIjvZBkfZ1yAWSpYFcLpvw==76315a15-0fb2-4df7-9e3e-53a3b28fb700", "sosi:IDCardTypeNameID": "user", urn:uuid:46559bb9-d720-48b7-b9bd-c280915768d0" }, "sosi:IDCardVersionthreadId": "1.0.default task-1" }, "methodtime": "POST2023-06-12T13:42:22.968+02:00", "pathstats": "/idsas/20230601/service", { "queryhandlerDuration": ""583, "portRequestContentDuration": 808041, "protocolResponseContentDuration": "http"0, "reqSizeSecurityProtocolRequestDuration": 7204368, "resSizeSecurityProtocolResponseDuration": 2110, "soapHeadersbufferAllocated": {true, "FlowIDusedBuffers": "72111931-fe3b-4956-bea3-20e8c5be9ce0"1, "IssueractiveBuffersInPool": "TEST1-NSP-STS"1, "MessageIDidleBuffersInPool": "76315a15-0fb2-4df7-9e3e-53a3b28fb700",0 "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 vil typisk være et CVR.
Der er pt. en type af whitelisting, BLURRING, med mulighed for at der tilføjes flere i fremtiden. For at kunne oprette en sløring, skal anvenderens CVR være whitelistet med netop denne type.
Der findes en tabel whitelist i databasen til dette formål.
SQL til at indsætte whitelisting af anvender kan se ud på følgende måde:
|
Note-feltet kan fx anvendes til at referere en supportsag eller lignende for sporingshensyn. Kun actor_id og type er obligatorisk.
Oprettelse/fornyelse af salt
Oprettelse/fornyelse af salt sker via et HTTP GET kald til <serverurl>/idsas-operations/renew-salt
...
} |
Baggrundsjobs
Overvågning af baggrundsjobs
...