Versions Compared

Key

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

...

  • NSP komponenter

    • Consent-verification

      • Type: Webservice

      • Filnavn: consent-verification.ear

      • Url: <serverurl>/consent-verification/service

      • StatusUrl: <serverurl>/consent-verification/info/status
      • Versionsurl: <serverurl>/consent-verification/info/version

      • DKS-konfiguration:

        • <serverurl>/consent-verification/dccconfig/dks

        • <serverurl>/consent-verification/dccconfig20251211/dks
  • DoDi – Dataopdateringkomponenter

    • Consent-administration

      • Type: Webservice

      • Filnavn: consent-administration.ear

      • Url: <serverurl>/consent-administration/service

      • Url: <serverurl>/consent-administration/servicev2
      • StatusUrl: <serverurl>/consent- administration/info/status
      • Versionsurl: <serverurl>/consent-administration/info/version

      • DKS-konfiguration:

        • <serverurl>/consent-administration/dccconfig/dks

        • <serverurl>/consent-administration/dccconfigidws/dks
        • <serverurl>/consent-administration/dccconfigadmin20/dks
        • <serverurl>/consent-administration/dccconfig20/dks
        • <serverurl>/consent-administration/dccconfigidws20/dks

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

...

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.valid.from.allowed.skew.seconds

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

dk.nsi.consent.validate.healthcare.professional.cpr

Flag der angiver om cpr-nummer på sundhedsfaglig medarbejder 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.

registration.log.organisation_name

Angiver standard organisationsnavnet, der bliver sendt til MinLog Registreringsservicen.

default.creating.system.nameI IDWS tilfældet er det dette navn der bliver brugt på spærringerne som oprettene system.
dk.nsp.minspaerring.administration.national.rolleDen nationale rolle, der er krævet for at en administrativ medarbejder kan anvende admin-snitfladen
citizen.powerofattorney.privilegesFuldmagts-streng for borger
citizen.powerofattorney.enabledAngiver om muligheden med fuldmagt for borger er enabled. Default er false, dvs den ikke er.

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

...

dk.nsi.dcc.endpoint.administrationAngiver det endpoint, som DCC'en skal kalde for at ramme samtykke DGWS snitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfig/dks
dk.nsi.dcc.endpoint.administration.idwsAngiver det endpoint, som DCC'en skal kalde for at ramme samtykke IDWS snitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfigidws/dks
dk.nsi.dcc.endpoint.administration.admin.v20Angiver det endpoint, som DCC'en skal kalde for at ramme samtykke Admin v2.0 snitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfigadmin20/dks
dk.nsi.dcc.endpoint.administration.v20Angiver det endpoint, som DCC'en skal kalde for at ramme samtykke DGWS v2.0 snitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfig20/dks
dk.nsi.dcc.endpoint.administration.idws.v20Angiver det endpoint, som DCC'en skal kalde for at ramme samtykke IDWS v2.0 snitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfigidws20/dks


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

Følgende properties skal være defineret når Samtykkeservicen skal kalde NAS, Personinformation, SAES,  SYES, SORES og Minlog ifm. parametervalidering:

NASdk.nsi.consent.nas.notification.endpointNAS  endpointdk.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.Personinformationdk.nsi.consent.personinformation.endpointPersoninformation  endpointdk.nsi.consent.personinformation
.connect.timeout.millisGrænse for hvor tid det må tage at oprette forbindelse til
Personinformation
NAS (i ms.).
dk.nsi.consent.
personinformation
nas.max.total.connectionsMaksimalt antal samtidige
Personinformation
NAS-forbindelser.
dk.nsi.consent.
personinformation
nas.default.max.connections.per.routeMaksimalt antal
Personinformation
NAS-forbindelser per rute.
Personinformation
dk.nsi.consent.personinformation.
dgws.validation.
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

minlog.producer.
bootstrap
proxy.
servers
url
Kafka endpoint, som anvendes i forbindelse med kald til MinLog2
Url til Kafka-proxy til MinLog registrering
minlog
kafka
.producer.
client
proxy.
idNavnet som Samtykkeservicen vil fremgå med i listen af Producers på et Kafka Cluster.
maxTotalConnectionsKonfiguration af client pool til kald af Kafka-proxy
minlog
kafka
.producer.
key
proxy.
serializerSerializer key for Kafka producer
defaultMaxConnectionsPerRouteKonfiguration af client pool til kald af Kafka-proxy
minlog
kafka
.producer.
value
proxy.
serializerSerializer value for Kafka producer
connectionTimeoutMsKonfiguration af client pool til kald af Kafka-proxy
minlog.producer.proxy.socketTimeoutMsKonfiguration af client pool til kald af Kafka-proxy
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)

databasecheckdk.nsp.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.statementminspaerring.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 whitelist.whitelist_configconsentitem LIMIT 1;

servicestatuscheckdatabasecheck.database.failurethreshold = 1

wsdl.app.endpointstatement.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

# DCC Endpoints
dk.nsi.dcc.endpoint.administration = http://localhosttest1-cnsp.ekstern-test.nspop.dk:8080/consent-verificationadministration/service

idcard.subject.id.typedk.nsi.dcc.endpoint.administration.idws = 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/consent-administration/serviceidws
dk.nsi.dcc.endpoint.administration.admin.v20=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.nsi.consent.sor.max.total.connections

...

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

...

consent-administration/service-adm-2.0
dk.nsi.dcc.endpoint.administration.v20 = http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-administration/service-2.0
dk.nsi.dcc.endpoint.administration.idws.v20 = http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-administration/serviceidws-2.0

# 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
minlog.producer.proxy.url=http://test1-cnsp.ekstern-test.nspop.dk:8080/minlog2-kafka-proxy/2026/02/11/registrations
minlog.producer.proxy.maxTotalConnections=200
minlog.producer.proxy.defaultMaxConnectionsPerRoute=20
minlog.producer.proxy.connectionTimeoutMs=2000
minlog.producer.proxy.socketTimeoutMs=5000

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

Eksempel på indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS):

Code Block
<?xml version="1.0"?>
<root xmlns="http://nspop.dk/2014/04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://nspop.dk/2014/04/dks.xsd">
    <dksVersion>1</dksVersion>
    <timestamp>2026-02-24T07:47:24Z</timestamp>
    <name>ConsentAdministration</name>
    <endpoint>http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-administration/service</endpoint>
    <operations>
        <action name="urn:dk:nsi:consentservices:administration:service:1#ConsentAdd">
            <model>synchronous_timeout</model>
            <timeoutMillis>120000</timeoutMillis>            <!-- (optional) Required securitylevel of the
            IdCard attached to the proxied request - if this is MOCES, the request may be routed
            through the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
        <action name="urn:dk:nsi:consentservices:administration:service:1#ConsentRevoke">
            <model>synchronous_timeout</model>
            <timeoutMillis>120000</timeoutMillis>            <!-- (optional) Required securitylevel of the
            IdCard attached to the proxied request - if this is MOCES, the request may be routed
            through the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
        <action name="urn:dk:nsi:consentservices:administration:service:1#ConsentRegistrationsGet">
            <model>synchronous_timeout</model>
            <timeoutMillis>120000</timeoutMillis>            <!-- (optional) Required securitylevel of the
            IdCard attached to the proxied request - if this is MOCES, the request may be routed
            through the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be * Connection #0 to host localhost left intact
verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
        <action name="urn:dk:nsi:consentservices:administration:service:1#ConsentModify">
            <model>synchronous_timeout</model>
            <timeoutMillis>120000</timeoutMillis>            <!-- (optional) Required securitylevel of the
            IdCard attached to the proxied request - if this is MOCES, the request may be routed
            through the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
    </operations>
</root>

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 de 5 DKS-snitflader testes med:

Code Block
curl -v http://localhost:8081/consent-administration/dccconfig/dks
curl -v http://localhost:8081/consent-administration/dccconfigidws/dks
curl -v http://localhost:8081/consent-administration/dccconfigadmin20/dks
curl -v http://localhost:8081/consent-administration/dccconfig20/dks
curl -v http://localhost:8081/consent-administration/dccconfigidws20/dks

Succesfuldt svar giver indholdet svarende til eksemplet 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.dcc.endpoint.verification

Angiver det endpoint, som DCC'en skal kalde for at ramme samtykke verifikationssnitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfig/dks

dk.nsi.dcc.endpoint.verification.20251211

Angiver det endpoint, som DCC'en skal kalde for at ramme samtykke 20251211 verifikationssnitfladen. Dette kommer til at fremgå af den XML, der returneres i /dccconfig20251211/dks


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

# DCC Endpoints
dk.nsi.dcc.endpoint.verification = http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-verification/service
dk.nsi.dcc.endpoint.verification.20251211 = http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-verification/service-20251211

# 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.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.

Se yderligere opsætning i installationsvejledningen.

SLA-log konfiguration

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

DKS konfiguration

Eksempel på indholdet, der returneres ved kald af DCC Konfiguration Service-snitfladen (DKS):

Code Block
<?xml version="1.0"?>
<root xmlns="http://nspop.dk/2014/04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://nspop.dk/2014/04 dks.xsd">
    <dksVersion>1</dksVersion>
    <timestamp>2026-02-24T07:47:30Z</timestamp>
    <name>ConsentVerification</name>
    <endpoint>http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-verification/service</endpoint>
    <operations>
        <action name="urn:dk:nsi:consentservices:verification:service:1#ConsentForDataCheck">
            <model>synchronous_timeout</model>
            <timeoutMillis>15000</timeoutMillis>            <!-- (optional) Required securitylevel of the IdCard
            attached to the proxied request - if this is MOCES, the request may be routed through
            the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
        <action name="urn:dk:nsi:consentservices:verification:service:1#ConsentForUserCheck">
            <model>synchronous_timeout</model>
            <timeoutMillis>15000</timeoutMillis>            <!-- (optional) Required securitylevel of the IdCard
            attached to the proxied request - if this is MOCES, the request may be routed through
            the SOSI-Gateway -->
            <idCardLevel>VOCES</idCardLevel>            <!-- (optional) If the request is routed through
            SOSI-GW, the maxAge will be verified -  -->
            <idCardMaxAgeMins>1440</idCardMaxAgeMins>
        </action>
    </operations>
</root>

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/

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 Samtykkeservicen verifikationsservicen fra filen:

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

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

...

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


For den nye 20251211 verifikationssnitflade (20251211) kan DKS-snitfladen testes med:

...

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

Test af versionsnummer

...

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

...