Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

STS
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 Samtykkeservicen 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 Samtykkeservicen skal kalde NAS, Personinformation, SAES,  SYES, SORES og Minlog ifm. parametervalidering:

NAS
dk.nsi.consent.nas.notification.endpointNAS  endpoint
dk.nsi.consent.nas.topicAngiver det Topic, som skal anvendes, når der sendes notifications til NAS.
dk.nsi.consent.nas.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til NAS (i ms.).
dk.nsi.consent.nas.max.total.connectionsMaksimalt antal samtidige NAS-forbindelser.
dk.nsi.consent.nas.default.max.connections.per.routeMaksimalt antal NAS-forbindelser per rute.
Personinformation
dk.nsi.consent.personinformation.endpointPersoninformation  endpoint
dk.nsi.consent.personinformation.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til Personinformation (i ms.).
dk.nsi.consent.personinformation.max.total.connectionsMaksimalt antal samtidige Personinformation-forbindelser.
dk.nsi.consent.personinformation.default.max.connections.per.routeMaksimalt antal Personinformation-forbindelser per rute.
dk.nsi.consent.personinformation.dgws.validation.level

Værdi der angiver om cpr-validering er slået til i dgws-snitfladerne.

Skal være enten:

 OFF, WARNING eller REJECT.


OFF betyder at der ikke foretages nogen validering. 

WARNING betyder at der foretages validering, og skrives til audit-loggen hvis cpr-nummeret ikke er gyldigt, men kaldet fortsætter (key i audit-loggen: dk.nsp.cpr.exists.false).

REJECT betyder at udførslen af kaldet fejler.

dk.nsi.consent.personinformation.idws.validation.level

Værdi der angiver om cpr-validering er slået til i idws-snitfladerne.

Skal være enten:

 OFF, WARNING eller REJECT.


OFF betyder at der ikke foretages nogen validering.

WARNING betyder at der foretages validering, og skrives til audit-loggen hvis cpr-nummeret ikke er gyldigt, men kaldet fortsætter (key i audit-loggen: dk.nsp.cpr.exists.false).

REJECT betyder at udførslen af kaldet fejler.

SAES
dk.nsi.consent.saes.endpointSAES  endpoint
dk.nsi.consent.saes.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til SAES (i ms.).
dk.nsi.consent.saes.max.total.connectionsMaksimalt antal samtidige SAES-forbindelser.
dk.nsi.consent.saes.default.max.connections.per.routeMaksimalt antal SAES-forbindelser per rute.
dk.nsi.consent.saes.fail.thresholdGrænse for hvor mange gange SAES-kald må fejle i træk, før SAES opfattes som usund.
SYES
dk.nsi.consent.syes.endpointSYES  endpoint
dk.nsi.consent.syes.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til SYES (i ms.).
dk.nsi.consent.syes.max.total.connectionsMaksimalt antal samtidige SYES-forbindelser.
dk.nsi.consent.syes.default.max.connections.per.routeMaksimalt antal SYES-forbindelser per rute.
dk.nsi.consent.syes.fail.thresholdGrænse for hvor mange gange SYES-kald må fejle i træk, før SYES opfattes som usund.
SORES
dk.nsi.consent.sor.endpointSORES  endpoint
dk.nsi.consent.sor.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til SORES (i ms.).
dk.nsi.consent.sor.max.total.connectionsMaksimalt antal samtidige SORES-forbindelser.
dk.nsi.consent.sor.default.max.connections.per.routeMaksimalt antal SORES-forbindelser per rute.
dk.nsi.consent.sor.fail.thresholdGrænse for hvor mange gange SORES-kald må fejle i træk, før SORES opfattes som usund.

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

Minlog / Kafka
kafka.producer.bootstrap.serversKafka endpoint, som anvendes i forbindelse med kald til MinLog2
kafka.producer.client.idNavnet som Samtykkeservicen vil fremgå med i listen af Producers på et Kafka Cluster.
kafka.producer.key.serializerSerializer key for Kafka producer
kafka.producer.value.serializerSerializer value for Kafka producer
kafka.topicKafka topic som anvendes i forbindelse med kald til MinLog2
client.minlog.propertiesAngiver placering af properties til kald af MinLog2
dk.nsp.minspaerring.administration.rediger.minlog.tekstDen tekst, der skrives i minlog, når en administrativ medarbejder redigerer en frabedelse på vegne af en ikke digital borger
dk.nsp.minspaerring.administration.tilfoj.minlog.tekstDen tekst, der skrives i minlog, når en administrativ medarbejder tilføjer en frabedelse på vegne af en ikke digital borger
dk.nsp.minspaerring.administration.ophaev.minlog.tekstDen tekst, der skrives i minlog, når en administrativ medarbejder ophæver en frabedelse på vegne af en ikke digital borger
dk.nsp.minspaerring.administration.hent.minlog.tekstDen tekst, der skrives i minlog, når en administrativ medarbejder indhenter oplysninger om  spærringer på vegne af en ikke digital borger


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):

Code Block
idcard.version = 1.0.1
sts.test.mode = falsetrue

logdefault.configcreating.file=consentadministration.log4j.properties

client.minlog.propertiessystem.name = ConsentAdministration.properties
registration.wsdl.location = Samtykkeservicen

wsdl.app.endpoint=http://localhost:80808081/minlogconsent-registrationadministration/service?wsdl

registrationlog.invokerconfig.timeout = 30000file=log4j-consentadministration.properties

registration.log.organisation_name=(organisationsnavn blev ikke udfyldt p\u00e5 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

wsdl.app.endpoint = http://localhost:8080/consent-verification/

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 = Samtykkeservicen 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

# Ikke digitale
dk.nsp.minspaerring.administration.national.rolle=urn:dk:healthcare:national-federation-role:code:41001:value:SundAssistR1
dk.nsp.minspaerring.administration.rediger.minlog.tekst=Administrativ medarbejder har redigeret frabedelser på vegne af borger
dk.nsp.minspaerring.administration.tilfoj.minlog.tekst=Administrativ medarbejder har tilføjet frabedelser på vegne af borger
dk.nsp.minspaerring.administration.ophaev.minlog.tekst=Administrativ medarbejder har ophævet frabedelse på vegne af borger
dk.nsp.minspaerring.administration.hent.minlog.tekst=Adm. medarbejder har indhentet oplysninger om borgers frabedelser

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:

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

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Samtykkeservicen administrationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Samtykkeservicen administrationsservicen, kan DKS-snitfladen testes med:

Code Block
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 Samtykkeservicen administrationsservicen kan versionsnummeret hentes via en HTTP-snitflade.

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

hvilket giver output I stil med:

Code Block
version 1.1.2

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

Samtykkeservicen verifikation

Service konfiguration

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

Code Block
/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

...

wsdl.app.endpoint

...

Det endpoint, hvor servicen bor. Dette anvendes af wsdl servlet til at returnere en korrekt service location.

...

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.nsp.minspaerring.administration.national.rolle=urn:dk:healthcare:national-federation-role:code:41008:value:SpaerAdminR8

dk.nsi.app.name = consent-administration
dk.nsi.app.shortName = csnt-adm
dk.nsi.consent.valid.from.allowed.skew.seconds = 60
dk.nsi.consent.validate.healthcare.professional.cpr = true
dk.nsi.consent.validate.organization = true
citizen.powerofattorney.privileges=urn:dk:nspop:sts:consent
citizen.powerofattorney.enabled=false

# Database
datasource.jndi=java:/ConsentServiceDS
whiteList.datasource.jndi=java:/WhitelistDS
databasecheck.statement.consent=SELECT * FROM consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist_config LIMIT 1;
servicestatuscheck.database.failurethreshold = 1

# STS
idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 33257872
idcard.subject.name = Sundhedsdatastyrelsen
idcard.level = 3
idcard.system.name = MinSp\u00e6rring
sts.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService
sts.keystore = NSP_Test_Service_Consumer_sds.p12
sts.keystore.password = Test1234

# NAS integration
dk.nsi.consent.nas.notification.endpoint = http://test1.ekstern-test.nspop.dk:8080/nas2/notificationbroker/service
dk.nsi.consent.nas.topic = TESTNAS-TOPIC1
dk.nsi.consent.nas.connect.timeout.millis = 10000
dk.nsi.consent.nas.max.total.connections = 20
dk.nsi.consent.nas.default.max.connections.per.route = 20

# PersonInformation integration
dk.nsi.consent.personinformation.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1
dk.nsi.consent.personinformation.connect.timeout.millis = 10000
dk.nsi.consent.personinformation.max.total.connections = 20
dk.nsi.consent.personinformation.default.max.connections.per.route = 20
dk.nsi.consent.personinformation.dgws.validation.level = OFF
dk.nsi.consent.personinformation.idws.validation.level = OFF

# Stamdata SAES
dk.nsi.consent.saes.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-authorization-lookup-ws/service/AuthorizationService
dk.nsi.consent.saes.connect.timeout.millis = 10000
dk.nsi.consent.saes.max.total.connections = 20
dk.nsi.consent.saes.default.max.connections.per.route = 20
dk.nsi.consent.saes.fail.threshold = 1

# Stamdata SYES
dk.nsi.consent.syes.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-yder-lookup-ws/service/YderService
dk.nsi.consent.syes.connect.timeout.millis = 10000
dk.nsi.consent.syes.max.total.connections = 20
dk.nsi.consent.syes.default.max.connections.per.route = 20
dk.nsi.consent.syes.fail.threshold = 1

# SORES
dk.nsi.consent.sor.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/sores/
dk.nsi.consent.sor.connect.timeout.millis = 10000
dk.nsi.consent.sor.max.total.connections = 20
dk.nsi.consent.sor.default.max.connections.per.route = 20
dk.nsi.consent.sor.fail.threshold = 10

# Minlog / 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

client.minlog.properties = ConsentAdministration.properties
dk.nsp.minspaerring.administration.rediger.minlog.tekst=Administrativ medarbejder har redigeret frabedelser p\u00e5 vegne af borger
dk.nsp.minspaerring.administration.tilfoj.minlog.tekst=Administrativ medarbejder har tilf\u00f8jet frabedelser p\u00e5 vegne af borger
dk.nsp.minspaerring.administration.ophaev.minlog.tekst=Administrativ medarbejder har oph\u00e6vet frabedelse p\u00e5 vegne af borger
dk.nsp.minspaerring.administration.hent.minlog.tekst=Adm. medarbejder har indhentet oplysninger om borgers frabedelser

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:

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

Filen skal overholde DKS XML-skemaet og beskriver de webservice-operationer Samtykkeservicen administrationsservicen udstiller jf. [DKS-beskrivelse].

Test af DKS

Efter konfiguration og deployering af Samtykkeservicen administrationsservicen, kan DKS-snitfladen testes med:

Code Block
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 Samtykkeservicen administrationsservicen kan versionsnummeret hentes via en HTTP-snitflade.

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

hvilket giver output I stil med:

Code Block
version 1.1.2

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

Samtykkeservicen verifikation

Service konfiguration

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

Code Block
/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

wsdl.app.endpoint

Det endpoint, hvor servicen bor. Dette anvendes af wsdl servlet til at returnere en korrekt service location.

dk.nsi.app.name

Navn på system til SLA-logning.

dk.nsi.app.shortName

Kort navn på system til SLA-logning.


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

STS
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 Samtykkeservicen 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 Samtykkeservicen skal kalde SORES og SYES:

SYES
dk.nsi.consent.syes.endpointSYES  endpoint
dk.nsi.consent.syes.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til SYES (i ms.).
dk.nsi.consent.syes.max.total.connectionsMaksimalt antal samtidige SYES-forbindelser.
dk.nsi.consent.syes.default.max.connections.per.routeMaksimalt antal SYES-forbindelser per rute.
dk.nsi.consent.syes.fail.thresholdGrænse for hvor mange gange SYES-kald må fejle i træk, før SYES opfattes som usund.
SORES
dk.nsi.consent.sor.endpointSORES  endpoint
dk.nsi.consent.sor.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til SORES (i ms.).
dk.nsi.consent.sor.max.total.connectionsMaksimalt antal samtidige SORES-forbindelser.
dk.nsi.consent.sor.default.max.connections.per.routeMaksimalt antal SORES-forbindelser per rute.
dk.nsi.consent.sor.fail.thresholdGrænse for hvor mange gange SORES-kald må fejle i træk, før SORES opfattes som usund.


Eksempel på properties fil:

Code Block
idcard.version = 1.0.1
sts.test.mode = true

wsdl.app.endpoint=http://localhost:8080/consent-verification/

log.config.file=log4j-consentverification.properties

dk.nsi.app.name = consent-verification
dk.nsi.app.shortName = csnt-ver

# Database
datasource.jndi=java:/ConsentServiceDS
whiteList.datasource.jndi=java:/WhitelistDS
databasecheck.statement.consent=SELECT * FROM consentitem LIMIT 1;
databasecheck.statement.what=SELECT * FROM whatitem LIMIT 1;
databasecheck.statement.who=SELECT * FROM whoitem LIMIT 1;
whitelistds.statement=SELECT * FROM whitelist_config LIMIT 1;
servicestatuscheck.database.failurethreshold = 1

# STS
idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 33257872
idcard.subject.name = Sundhedsdatastyrelsen
idcard.level = 3
idcard.system.name = MinSpærring
sts.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/sts/services/SecurityTokenService
sts.keystore = NSP_Test_Service_Consumer_sds.p12
sts.keystore.password = Test1234

# SORES
dk.nsi.consent.sor.endpoint = http://test1.ekstern-test.nspop.dk:8080/sores/
dk.nsi.consent.sor.connect.timeout.millis = 10000
dk.nsi.consent.sor.fail.threshold = 10
dk.nsi.consent.sor.max.total.connections

...

 = 200
dk.nsi.consent.sor.default.max.connections

...

.

...

Eksempel på properties fil:

Code Block
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
wsdl.app.endpoint=http://localhost:8081/consent-administration/per.route = 20

# Stamdata SYES
dk.nsi.consent.syes.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-yder-lookup-ws/service/YderService
dk.nsi.consent.syes.fail.threshold = 1
dk.nsi.consent.syes.connect.timeout.millis = 10000
dk.nsi.consent.syes.max.total.connections = 20
dk.nsi.consent.syes.default.max.connections.per.route = 20

Log4j konfiguration

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

...

nsp-role-mapping.properties

DDS Registry og Repository anvender denne property fil til at mappe hvilken rolle (role), der kommer ned i minlog registreringen.

Property filen vedligeholdes her: https://git.nspop.dk/projects/TOOL/repos/nsp-role-mapping/browse/nsp-role-mapping.properties


...

Auditlogning is done using the official NSP Audit Log modul.

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

Samtykkeservicen verificering Audit data

...

Type mapning mellem ovenstående tabel og faktisk data i fil: Personlig = RegularPersonalInformation/RPI, Ikke personlig = NonPersonalInformation/NPI og Følsomme = SensitivePersonalInformation/SPI

...