Introduktion

Formål

Dette dokument er rettet mod systemadministratorer og driftspersoner, som skal kunne håndtere driftsmæssige aspekter af servicen.

Driftsvejledningen indeholder information om Min Spærring komponenterne med hensyn til eksterne afhængigheder, standardplacering af logfiler og konfigurationsfiler, og evt. krav til genstart af applikationer hvis komponenten ikke er responsiv.

I afsnit 2 er beskrevet hvilke komponenter der indgår i Min Spærring services og deres forventede placering med hensyn til platform.

Afsnit 4 beskriver aktuelle konfigurationsparametre for Min Spærring services, samt eksempler på konfigurationsparameterfiler.

Afsnit 5.1, 5.2 og 5.3 beskriver hvorledes Min Spærring komponenterne overvåges.

I afsnit 5.4 er Min Spærring service relaterede logfiler beskrevet, så disse evt. kan overvåges, og tillige danne baggrund for fejlsøgning.

Beskrivelse af standard fejlsøgning og start/stop vejledning for komponenterne er beskrevet i afsnit 6.

Specielle krav til backup er beskrevet i afsnit 7, ligesom procedure ved reetablering af komponenten ud fra backup beskrives.

Læsevejledning

Læseren forventes at have kendskab til Sundhedsdatastyrelsens platform NSP, samt generelt kendskab til WildFly applikation server, Docker, Docker Compose samt Ubuntu Linux operativ system

Dokumenthistorik

VersionDatoAnsvarligBeskrivelse

1.0

29.06.2012

Systematic

Initiel udgave

1.1

18.09.2012

Systematic

Http statuscheck opdateret

1.2

11.09.2014

Systematic

URL for service-check rettet.

1.3

20.11.2014

Systematic

Konfiguration af organisationsnavn tilføjet

1.4

14.03.2016

Systematic

ServiceChecker konfiguration opdateret

Opgradering til WildFly

Beskrivelse af legacy properties

1.5

02.09.2016

Systematic

XA-transaktioner fjernet fra afsnit 4.3.3.

Beskrivelse af DCC Konfigurations Service (DKS) tilføjet.

1.6

17.12.2016

Systematic

Versionsnummer kan nu hentes som beskrevet i afsnit 4.2.5.

Udpegning af id-kort properties som ikke længere benyttes i afsnit 4.1.1.

Generel servicecheck komponent erstattet af Samtykke-specifik servicecheck (afsnit 4 og 5)

Navn på SLA properties ændret.

Ny timeout property tilføjet i afsnit 4.1.1.

1.7

04.04.2017

Systematic

Status-snitflade tilføjet som beskrevet i afsnit 2, 4 og 5.

Ubrugte certifikatproperties fjernet fra afsnit 4.1 og 4.2.

1.8

13.06.2018

Systematic

Migreret til NSPOP SVN


22.10.2018KITDokument flyttet fra Word til Confluence. Original dokument navn var: OHB0002 Driftsvejledning Samtykke Services.docx

19.03.2020KITOpdateret i forhold til docker.

22.06.2020KITOpdateret i forbindelse med etablering af IDWS i administrationssnitfladen. 

22.10.2020KITSDS-3875 A new version of the interface has been added. This interface matches the underlying validations.

09.11.2020KITSDS-3685: Min Spærring skal anvende SORES til SOR-SHAK opslag

Definitioner og referencer

DefinitionBeskrivelse

DCC

Dekoblingskomponenten på NSP

DKS

DCC Konfigurations Service

NSI

National Sundheds-IT

NSP

Den nationale service platform (inden for sundheds-IT)

SHAK

Sygehusafdelingsklassifikation

SOR

Sundhedsvæsenets organisationsregister

STS

Security Token Service

AliasBeskrivelse

DKS-beskrivelse

https://www.nspop.dk/display/web/DKS+--+DCC+Konfiguration+Service, hentet 02.09.2016.

Komponenter

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

Consent-administration komponenten anvender desuden Min-log-registreringsservicen, som skal være tilgængelig på DoDi’en.

Daglig drift

Dette afsnit beskriver den daglige drift af systemet.

Synkronisering af consent database fra Min Spærring administrationsservice til NSP

Min Spærring administration er en central service, der opbevarer borgeres registrerede samtykker/spærringer i consent databasen.

Der skal sikres at borgernes opdateringer af registrerede samtykker/spærringer i den centrale consent database replikeres til den enkelte NSP.

Konfiguration

Min Spærring administration

Servicekonfiguration

Grundlæggende konfiguration foregår ved redigering i filen ConsentAdministration.properties, der placeres i følgende WildFly modul:

/pack/wildfly8/modules/nsi/consentadministration/config/main/

I denne skal følgende properties være definerede:

Property

Beskrivelse

idcard.version

Servicen afviser kald, hvor ID-kort i Security-header ikke har versionsnummer opgivet som værdien af denne property. Angives til 1.0.1

sts.test.mode

Angiver med værdien true at servicen benytter test-STS. Værdien skal være ’false’ i drift, hvorved den rigtige SOSI-STS anvendes.

log.config.file

Angiver placering af log4j properties

databasecheck.statement.consent

Se databasemonitorering beskrevet i afsnit 4.3.1.2.

databasecheck.statement.what

databasecheck.statement.who

whitelistds.statement

dk.nsi.consent.valid.from.allowed.skew.seconds

Angiver i sekunder, hvor langt tilbage i tide validFrom-tidsstemplet må ligge i forhold til 'nu'.

nas.notification.endpoint

Angiver det endpoint, som Cprindlæseren skal kalde NAS notification service på.

nas.topicAngiver det Topic, som skal anvendes, når der sendes notifications til NAS.
client.minlog.propertiesAngiver placering af properties til kald af MinLog2

I den properties-fil, der udpeges af propertien ”client.minlog.properties”, skal følgende properties defineres:

registration.log.organisation_name

Angiver standard organisationsnavnet, der bliver sendt til MinLog Registreringsservicen.

kafka.producer.bootstrap.serversKafka endpoint, som anvendes i forbindelse med kald til MinLog2
kafka.producer.client.idNavnet som MinSpærring vil fremgå med i listen af Producers på et Kafka Cluster.
kafka.producer.key.serializerSerializer key for Kafka producer
kafka.producer.key.value.serializerSerializer value for Kafka producer
kafka.topic

Kafka topic som anvendes i forbindelse med kald til MinLog2

Følgende properties skal være defineret, for at starte servicen op med DGWS-sikkerhed i forbindelse med adviseringer til NAS:

idcard.subject.id.typeSubjecttype for IDKortet
idcard.subject.idSubjectid for IDKortet
idcard.subject.nameSubjectnavn for IDKortet
idcard.levelSikkerhedsniveau for IDkortet
idcard.system.nameSystemnavn i IDkortet
sts.endpointEndpointet, hvor Minspærring skal trække sit SOSI IDkort på baggrund af sts.keystore
sts.keystoreKeystore, der indeholder DDS Repository funktionscertifikat
sts.keystore.passwordPassword til sts.keystore

Følgende properties skal være defineret når Minspærring skal kalde SAES, SORES og SYES ifm. parametervalidering:

dk.nsi.app.name
Navn på system til SLA-logning.
dk.nsi.app.shortName
Kort navn på system til SLA-logning.
dk.nsi.consent.sor.service.url
SORES endpoint.
dk.nsi.consent.validate.healthcare.professional.cpr
Flag der angiver om cpr-nummer på sundhedsfaglige personer skal valideres ved kald til SAES, når der oprettes eller ændres spærringer.
dk.nsi.consent.validate.organization
Flag der angiver om organisationsnumre (SOR-, SHAK- og ydernummer) skal valideres ved kald til SORES og SYES, når der oprettes eller ændres spærringer.
dk.nsi.consent.sor.fail.threshold
Grænse for hvor mange gange SORES-kald må fejle i træk, før SORES opfattes som usund.
dk.nsi.consent.sor.max.total.connections
Maksimalt antal samtidige SORES-forbindelser.
dk.nsi.consent.sor.default.max.connections.per.route
Maksimalt antal SORES-forbindelser per rute.
dk.nsi.consent.saes.fail.threshold
Grænse for hvor mange gange SAES-kald må fejle i træk, før SAES opfattes som usund.
dk.nsi.consent.saes.connect.timeout.millis
Grænse for hvor tid det må tage at oprette forbindelse til SAES (i ms.).
dk.nsi.consent.saes.read.timeout.millis
Grænse for hvor tid det må tage at modtage svar fra SAES (i ms.).
dk.nsi.consent.saes.service.url
SAES endpoint.
dk.nsi.consent.syes.fail.threshold
Grænse for hvor mange gange SYES-kald må fejle i træk, før SYES opfattes som usund.
dk.nsi.consent.syes.connect.timeout.millis
Grænse for hvor tid det må tage at oprette forbindelse til SYES (i ms.).
dk.nsi.consent.syes.read.timeout.millis
Grænse for hvor tid det må tage at modtage svar fra SYES (i ms.).
dk.nsi.consent.syes.service.url
SYES endpoint.






Eksempel på ”ConsentAdministration.properties” fil (bemærk at ”client.minlog.properties” udpeger filen selv, og at Min-log-klient properties derfor er defineret i samme fil):

idcard.version = 1.0.1
sts.test.mode = false

log.config.file=consentadministration.log4j.properties

client.minlog.properties = ConsentAdministration.properties
registration.wsdl.location = http://localhost:8080/minlog-registration/service?wsdl
registration.invoker.timeout = 30000
registration.log.organisation_name=(organisationsnavn blev ikke udfyldt på registreringstidspunktet)

databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

servicestatuscheck.database.failurethreshold = 1

idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 46837428
idcard.subject.name = NETS DANID A/S - TU VOCES gyldig
idcard.level = 3
idcard.system.name = MinSpærring
sts.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService
sts.keystore = Statens_Serum_Institut_VOCES.jks
sts.keystore.password = Test1234

# Kafka
kafka.producer.bootstrap.servers=kafka:9092
kafka.producer.client.id=MinSpaerringMinLog2-producer
kafka.producer.key.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.producer.value.serializer=org.apache.kafka.common.serialization.StringSerializer
kafka.topic=MIT_TOPIC

log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes) consentadministration.log4j.properties filen.

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

Konfiguration af SLA-log findes i filen nspslalog-consentadministration.properties.

DKS konfiguration

Indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS), indlæses af DDS Registry fra filen:

/pack/wildfly8/modules/nsi/consentadministration/config/main/dksConfiguration.xml

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Min Spærring administrationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Min Spærring administrationsservicen, kan DKS-snitfladen testes med:

curl –i localhost:8081/consent-administration/dccconfig/dks

Succesfuldt svar giver indholdet svarende til dksConfiguration.xml nævnt ovenfor.

Test af versionsnummer

Efter konfiguration og deploy af Min Spærring administrationsservicen kan versionsnummeret hentes via en HTTP-snitflade.

curl –i http://localhost:8081/consent-administration/info/version

hvilket giver output I stil med:

version 1.1.2

I eksemplet kørte servicen på en local maskine konfigureret til port 9090.

Min Spærring verifikation

Service konfiguration

Grundlæggende konfiguration foregår ved redigering i filen ConsentVerification.properties, der placeres i følgende WildFly modul:

/pack/wildfly8/modules/nsi/consentverification/config/main/

I denne skal følgende properties være definerede:

Property

Beskrivelse

idcard.version

Servicen afviser kald, hvor ID-kort i Security-header ikke har versionsnummer opgivet som værdien af denne property. Angives til 1.0.1

sts.test.mode

Angiver med værdien true at servicen benytter test-STS. Værdien skal være ’false’ i drift, hvorved den rigtige SOSI-STS anvendes.

log.config.file

Angiver placering af log4j properties.

databasecheck.statement.consent

Se databasemonitorering beskrevet i afsnit 4.3.1.2.

databasecheck.statement.what

databasecheck.statement.who

whitelistds.statement

servicestatuscheck.database.failurethreshold

Antal kald til lokal database der må fejle før der meldes 500 på statussnitfladen

dk.nsi.app.name

Navn på system til SLA-logning.

dk.nsi.app.shortName

Kort navn på system til SLA-logning.

dk.nsi.consent.sor.service.url

SORES endpoint.

dk.nsi.consent.sor.fail.threshold

Grænse for hvor mange gange SORES-kald må fejle i træk, før SORES opfattes som usund.

dk.nsi.consent.sor.max.total.connections

Maksimalt antal samtidige SORES-forbindelser.

dk.nsi.consent.sor.default.max.connections.per.route

Maksimalt antal SORES-forbindelser per rute.

Eksempel på properties fil:

idcard.version = 1.0.1
sts.test.mode = false

log.config.file=consentverification.log4j.properties

databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

servicestatuscheck.database.failurethreshold = 1

Log4j konfiguration

Log4j konfiguration findes i (hvis ovenstående format anvendes) consentverification.log4j.properties filen.

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

Konfiguration af SLA-log findes i filen nspslalog-consentverification.properties.

DKS konfiguration

Indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS), indlæses af Min Spærring verifikationsservicen fra filen:

/pack/wildfly8/modules/nsi/consentverification/config/main/dksConfiguration.xml

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Min Spærring verifikationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Min Spærring verifikationsservicen, kan DKS-snitfladen testes med:

curl –i localhost:8080/consent-verification/dccconfig/dks

Succesfuldt svar giver indholdet svarende til dksConfiguration.xml nævnt ovenfor.

Test af versionsnummer

Efter konfiguration og deploy af Min Spærring verifikationsservicen kan versionsnummeret hentes via en HTTP-snitflade:

curl http://localhost:8080/consent-verification/info/version

hvilket giver output I stil med:

Version 1.1.2

I eksemplet kørte servicen på en lokal maskine konfigureret til port 9090.

Monitoreringssnitflader på Min Spærring services

Til monitorering af Min Spærring services findes to servicespecifikke sniflader: servicecheck og status, beskrevet i det følgende.

Servicecheck-snitfladen

Servicecheck-snitflade for Min Spærring servicen, der kaldes under opstart af servicen, kontrollerer tilgængelighed (og i et vist omfang indhold) af property-filer og afprøver aktivt forbindelsen til databaser.

Specielt vedrørende testConnection på JBoss

På grund af en kendt fejl i JBoss 6, logges en række exceptions i server loggen, hvis følgende filer ikke findes (de må gerne være tomme):

/pack/jboss/server/default/conf/props/roles.properties
/pack/jboss/server/default/conf/props/users.properties

Konfiguration af databasemonitorering

Databasemonitoreringen fungerer ved at lave en simpel query mod Min Spærring databasens tabeller. Der laves en query mod hver tabel. Disse queries er justerbare og kan ændres i hhv. ConsentAdministration.properties og ConsentVerification.properties.

databasecheck.statement.consent=SELECT * FROM consent.consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM consent.whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM consent.whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist.whitelist_config LIMIT 1;

Test af Servicecheck-snitfladen

Til Servicecheck-snitfladen findes en servlet i Min Spærring services.

Efter konfiguration og deploy af Min Spærring servicen, kan den testes med:

curl –i localhost:8081/consent-administration/info/servicecheck
curl –i localhost:8080/consent-verification/info/servicecheck

Servicen returnerer følgende http koder:

Status-snitfladen

Status-snitfladen laver passiv opsamling af resultater ved kald af database hhv. Min Spærring administrationsservicens kald af MinLog-servicen. Status-snitfladen opsamler data på hvor mange kald til database og MinLog-service, der er fejlet, og melder fejl hvis det overstiger de threshold-værdier, der er defineret i property-filen for hhv. Min Spærring administrationsservicen og Min Spærring verifikationsservicen.

Test af monitorering af status

Efter konfiguration og deploy af Min Spærring services, kan den testes med:

curl –i localhost:8081/consent-administration/info/status
curl –i localhost:8080/consent-verification/info/status

Servicen returnerer følgende http koder:

Overvågning

Min Spærring verifikations- og administrationsservices overvåges af en servicespecifik servicechecksnitflade samt en statussnitflade. Disse snitfladers url’er kan aflæses i afsnit 2.

Placering af HTML overvågningsside

Under listen af komponenter først i dette dokument, er der henvisninger til overvågningssiderne.

Fortolkning af HTML overvågningsside

Alle overvågningssider returnerer enten status 200 hvis de i øjeblikket kører fint, status 404 hvis service ikke er deployed og status 500, hvis der er opstået en fejl, og komponenten derfor ikke virker korrekt.

Overvågningstype

Simpel webside deployeret på serveren. Som udgangspunkt overvåges følgende:

  1. Tilstedeværelse og indhold af propertyfil

  2. Forbindelse til datasources via JNDI opslag

Logfiler og fortolkning af disse

Alle logfiler er at finde i log/ under WildFly. Herunder findes en liste over alle logfiler med en beskrivelse af hvilke komponenter der skriver til dem.

Logfilnavn

Komponenter der skriver til denne

consentadministration.log

consent-administration

consent-audit.log

consent-administration

nsputil-sla-consentadministration.log

consent-administration

consentadministration-servicecheck.log

consent-administration

consentadministration-status.log

consent-administration

consentverification.log

consent-verification

consent-audit.log

consent-verification

nsputil-sla-consentverification.log

consent-verification

consentverification-servicecheck.log

consent-verification

consentverification-status.log

consent-verification

For alle webservices er der en tilhørende SLA-log, der sørger for at logge udvalgte elementer fra requests til webservicen. For Min Spærring Services logges alle kald til ConsentAdministrationBean og ConsentVerificationBean til hver deres log. Loggen indeholder informationer om de kald der er lavet til webservicen, herunder hvilken serviceoperation der er kaldt og behandlingstid for kaldet.

SLA-logpunkter for indkommende kald til Min Spærring administration:


SLA-logpunkter for udgående kald fra Min Spærring administration:

Kaldte service

LogPoint

TargetSOAPOperation

MinLog

ConsentAdd.Minlog.LogDataAdd

LogDataAdd

SLA-logpunkter for indkommende kald til Min Spærring verificering:

Auditlogning is done using the official NSP Audit Log modul.

De forskellige håndtag logges på følgende måde.

Min Spærring verificering Audit data

KomponentKontekstTypeNøgleInformation
consent






ConsentForUserCheckPersonligepatient-cprCPR nummer på patient om hvem samtykke unsersøges
bruger-cprCPR nummer på brugeren der kalder services
on-behalf-of-cprCPR nummer på sundhedsfaglig servicen kaldes på vegne af
virksomhed-idIdentifikation af brugerens organisation
virksomhed-id-typeTypen på identifikationen af brugerens organisation
Ikke personligeCVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommesamtykke-indikator

Værdien af samtykke check; POSITIVE, NEGATIVE eller DATA_SPECIFIC_CONSENT

ConsentForDataCheck





Personlige




patient-cprCPR nummer på patient om hvem samtykke unsersøges
bruger-cprCPR nummer på brugeren der kalder services
on-behalf-of-cprCPR nummer på sundhedsfaglig servicen kaldes på vegne af
virksomhed-idIdentifikation af brugerens organisation
virksomhed-id-typeTypen på identifikationen af brugerens organisation
Ikke personlige

queryDataRegistration.[0..n].id

Data hvor der skal checkes for data specifikt samtykke. Der kan forespørges på flere data typer ad gangem, så nøglen har en fortløbende værdi indlejret.

queryDataRegistration.[0..n].virksomhed-id
queryDataRegistration.[0..n].virksomhed-id-type
queryDataRegistration.[0..n].oprettet-dato-tid
CVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommepositiv-samtykke-id-listeEn liste af identer på data typer, som har positivt samtykke.
ConsentForForeignersCheckPersonligepatient-cprCPR nummer på patient om hvem samtykke unsersøges
bruger-cprCPR nummer på brugeren der kalder services
Ikke personligeCVRCVR på brugerens organisation
FlowIdIdentifikation af aktuelt flow
Følsommesamtykke-til-udenlandsk-sundhedspersonVærdien af check for samtykke til udenlandsk sundhedsperson; POSITIVE eller NEGATIVE


Standard fejlsøgning

Krav til backup m.m.

Databasen til Min Spærring administration skal sikres med backup.

Derudover anbefales sikring af aktuelle konfigurationsfiler til Min Spærring services.