Page History
...
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.name | I IDWS tilfældet er det dette navn der bliver brugt på spærringerne som oprettene system. |
| dk.nsp.minspaerring.administration.national.rolle | Den nationale rolle, der er krævet for at en administrativ medarbejder kan anvende admin-snitfladen |
| citizen.powerofattorney.privileges | Fuldmagts-streng for borger |
| citizen.powerofattorney.enabled | Angiver 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.administration | Angiver 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.idws | Angiver 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.v20 | Angiver 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.v20 | Angiver 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.v20 | Angiver 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.type | Subjecttype for IDKortet |
| idcard.subject.id | Subjectid for IDKortet |
| idcard.subject.name | Subjectnavn for IDKortet |
| idcard.level | Sikkerhedsniveau for IDkortet |
| idcard.system.name | Systemnavn i IDkortet |
| sts.endpoint | Endpointet, hvor Samtykkeservicen skal trække sit SOSI IDkort på baggrund af sts.keystore |
| sts.keystore | Keystore, der indeholder DDS Repository funktionscertifikat |
| sts.keystore.password | Password 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.endpoint | NAS endpoint |
| dk.nsi.consent.nas.topic | Angiver 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:
| .connect.timeout.millis | Grænse for hvor tid det må tage at oprette forbindelse til |
| NAS (i ms.). |
| dk.nsi.consent. |
| nas.max.total.connections | Maksimalt antal samtidige |
| NAS-forbindelser. |
| dk.nsi.consent. |
| nas.default.max.connections.per.route | Maksimalt antal |
| NAS-forbindelser per rute. |
| Personinformation | |
|---|---|
| dk.nsi.consent.personinformation. |
| endpoint | Personinformation endpoint |
| dk.nsi.consent.personinformation.connect.timeout.millis | Grænse for hvor tid det må tage at oprette forbindelse til Personinformation (i ms.). |
| dk.nsi.consent.personinformation.max.total.connections | Maksimalt antal samtidige Personinformation-forbindelser. |
| dk.nsi.consent.personinformation.default.max.connections.per.route | Maksimalt 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.endpoint | SAES endpoint |
| 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.max.total.connections | Maksimalt antal samtidige SAES-forbindelser. |
| dk.nsi.consent.saes.default.max.connections.per.route | Maksimalt antal SAES-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. |
| SYES | |
|---|---|
| dk.nsi.consent.syes.endpoint | SYES endpoint |
| 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.max.total.connections | Maksimalt antal samtidige SYES-forbindelser. |
| dk.nsi.consent.syes.default.max.connections.per.route | Maksimalt antal SYES-forbindelser per rute. |
| 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. |
| SORES | |
|---|---|
| dk.nsi.consent.sor.endpoint | SORES endpoint |
| dk.nsi.consent.sor.connect.timeout.millis | Grænse for hvor tid det må tage at oprette forbindelse til SORES (i ms.). |
| 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.sor.fail.threshold | Græ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 |
|---|
| minlog.producer. |
| proxy. |
| url |
| Url til Kafka-proxy til MinLog registrering |
| minlog |
| .producer. |
| proxy. |
| maxTotalConnections | Konfiguration af client pool til kald af Kafka-proxy |
| minlog |
| .producer. |
| proxy. |
| defaultMaxConnectionsPerRoute | Konfiguration af client pool til kald af Kafka-proxy |
| minlog |
| .producer. |
| proxy. |
| connectionTimeoutMs | Konfiguration af client pool til kald af Kafka-proxy |
| minlog.producer.proxy.socketTimeoutMs | Konfiguration af client pool til kald af Kafka-proxy |
| client.minlog.properties | Angiver placering af properties til kald af MinLog2 |
| dk.nsp.minspaerring.administration.rediger.minlog.tekst | Den 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.tekst | Den 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.tekst | Den 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.tekst | Den 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å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.type | Subjecttype for IDKortet |
| idcard.subject.id | Subjectid for IDKortet |
| idcard.subject.name | Subjectnavn for IDKortet |
| idcard.level | Sikkerhedsniveau for IDkortet |
| idcard.system.name | Systemnavn i IDkortet |
| sts.endpoint | Endpointet, hvor Samtykkeservicen skal trække sit SOSI IDkort på baggrund af sts.keystore |
| sts.keystore | Keystore, der indeholder DDS Repository funktionscertifikat |
| sts.keystore.password | Password til sts.keystore |
Følgende properties skal være defineret når Samtykkeservicen skal kalde SORES og SYES:
| SYES | |
|---|---|
| dk.nsi.consent.syes.endpoint | SYES endpoint |
| 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.max.total.connections | Maksimalt antal samtidige SYES-forbindelser. |
| dk.nsi.consent.syes.default.max.connections.per.route | Maksimalt antal SYES-forbindelser per rute. |
| 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. |
| SORES | |
|---|---|
| dk.nsi.consent.sor.endpoint | SORES endpoint |
| dk.nsi.consent.sor.connect.timeout.millis | Grænse for hvor tid det må tage at oprette forbindelse til SORES (i ms.). |
| 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.sor.fail.threshold | Græ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
...