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.
dk.nsi.dcc.endpoint.

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

...

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:

dk.nsi.consent.personinformation Personinformation personinformation Personinformationpersoninformation Personinformation
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
.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.
dgwsvalidation
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

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.

...

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

Minlog / Kafka
kafkaminlog.producer.bootstrapproxy.serversurlKafka endpoint, som anvendes i forbindelse med kald til MinLog2Url til Kafka-proxy til MinLog registrering
minlogkafka.producer.clientproxy.idNavnet som Samtykkeservicen vil fremgå med i listen af Producers på et Kafka Cluster.maxTotalConnectionsKonfiguration af client pool til kald af Kafka-proxy
minlogkafka.producer.keyproxy.serializerSerializer key for Kafka producerdefaultMaxConnectionsPerRouteKonfiguration af client pool til kald af Kafka-proxy
minlogkafka.producer.valueproxy.serializerSerializer value for Kafka producer
kafka.topicKafka topic som anvendes i forbindelse med kald til MinLog2
connectionTimeoutMsKonfiguration af client pool til kald af Kafka-proxy
minlog.producer.proxy.socketTimeoutMsKonfiguration af client pool til kald af Kafka-proxy
client.minlog.propertiesclient.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

...

Code Block
idcard.version = 1.0.1
sts.test.mode = true
default.creating.system.name = Samtykkeservicen

wsdl.app.endpoint=http://localhost:8081/consent-administration/

log.config.file=log4j-consentadministration.properties

registration.log.organisation_name=(organisationsnavn blev ikke udfyldt p\u00e5 registreringstidspunktet)

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 = DCC Endpoints
dk.nsi.dcc.endpoint.administration = 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 = consent-administration/service
dk.nsi.dcc.endpoint.administration.idws = 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/nas2/notificationbrokerconsent-administration/service-adm-2.0
dk.nsi.dcc.consentendpoint.nasadministration.topicv20 = TESTNAS-TOPIC1
dk.nsi.consent.nas.connect.timeout.millis = 10000
dk.nsi.consent.nas.max.total.connections = 20http://test1-cnsp.ekstern-test.nspop.dk:8080/consent-administration/service-2.0
dk.nsi.consentdcc.nasendpoint.defaultadministration.max.connections.per.route = 20

# PersonInformation integration
dk.nsi.consent.personinformation.endpoint = idws.v20 = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdataconsent-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.validationadministration/serviceidws-2.0

# STS
idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 33257872
idcard.subject.name = Sundhedsdatastyrelsen
idcard.level = OFF3
dkidcard.nsi.consent.personinformation.idws.validation.levelsystem.name = OFF

# Stamdata SAESMinSp\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.saesnotification.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-authorization-lookup-ws/service/AuthorizationService/nas2/notificationbroker/service
dk.nsi.consent.nas.topic = TESTNAS-TOPIC1
dk.nsi.consent.saesnas.connect.timeout.millis = 10000
dk.nsi.consent.saesnas.max.total.connections = 20
dk.nsi.consent.saesnas.default.max.connections.per.route = 20
dk.nsi.consent.saes.fail.threshold = 1

# StamdataPersonInformation SYESintegration
dk.nsi.consent.syespersoninformation.endpoint = http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-yder-lookup-ws/service/YderServicepersoninformation/v1
dk.nsi.consent.syespersoninformation.connect.timeout.millis = 10000
dk.nsi.consent.syespersoninformation.max.total.connections = 20
dk.nsi.consent.syespersoninformation.default.max.connections.per.route = 20
dk.nsi.consent.personinformation.dgws.validation.level = OFF
dk.nsi.consent.personinformation.syesidws.failvalidation.thresholdlevel = 1OFF

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

# MinlogStamdata / 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:

...

Følgende properties skal være defineret når Samtykkeservicen skal kalde SORES og SYES:

...

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

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

...