Indledning

Nærværende dokument udgør driftsvejledningen for FIBS (Fødselsindberetnings-servicen).

FIBS fungerer som webservice gateway som modtager indberetninger som følger DenGodeWebservice (DGWS) til Kirkeministeriets jordemoder-service og transformerer dem til webservice protokollen OWSA Model T som jordemoder-service benytter.

Komponenten er udviklet som en standard NSP forretningsservice og afvikles i Docker i et image baseret på det på nsp udbudte standard image.

Eksterne afhængigheder

Komponenten skal kunne tilgå Kirkeministeriets jordemoder-service (KJS). I den forbindelse skal det nævnes, at FIBS er udstyret med et certifikat (x509), som benyttes til signering af beskeder sendt mod KJS.

Ved udskiftning af dette certifikat er det vigtigt at huske på at foretage en opdatering af KJS med de relevante certifikatoplysninger. Kontakt til driftsansvarlig kan skaffes gennem NSP operatøren.


Vejledning til opsætning af Java keystore til signering

FIBS signerer alle udgående beskeder og skal konfigureres med et Java keystore indeholdende nøgleparret der skal benyttes til signering. For en test-installation af FIBS ligger der allerede et sådan keystore indeholdende et nøglepar hvor certifikatet er blevet white-listet i Kirkeministeriets eksterne test-miljø for jordemoderservicen. I en produktions-installation skal der derimod konfigureres et keystore ved at følge følgende skridt:

  1. Importér det FOCES nøglepar som NSI har fået udstedt til formålet til et Java keystore ved hjælp af Java’s keytool kommando-linie værktøj. Nøgleparret skal gemmes under aliaset fibs. Kommando bliver noget i stil med nedenstående:

    keytool -importkeystore -v -srckeystore <foces src.pkcs12>
    
    -srcstoretype pkcs12 -srcstorepass <src password> -srcalias <src alias> -destkeystore keystore-prod.jks -deststorepass <dest password> -destalias fibs -srckeypass <src keypass> -destkeypass <dest keypass>
  2. Flyt det generede keystore keystore-prod.jks til $JBOSS_HOME/modules/dk/rsd/fibs/newborns/main/resources/.

  3. Ret de to properties dk.rsd.fibs.crypto.keyStorePassword og dk.rsd.fibs.crypto.keyStore.aliasPassword i $JBOSS_HOME/standalone/configuration/fibs/application.properties til at matche de valgte passwords.


Bemærk at det benyttede FOCES certifikat skal white-listes hos Kirkeministeriet før jordemoder-servicen kan kaldes.

SSL vejledning

Jordemoder-servicen hos Kirkeministeriet (KM) som FIBS kalder udstilles over én-vejs SSL. Der er i FIBS opsætningen to muligheder til SSL håndtering: Enten kan man lade FIBS håndtere trust til server-certifikatet eller man kan lade netværksudstyr håndtere SSL forbindelsen til CPR-kontoret som drifter løsningen for KM.

For at lade netværksudstyret håndtere SSL rettes propertien dk.rsd.fibs.service.endpoint i application.properties til at ramme netværksudstyret som er sat op til at lave SSL forbindelsen til KMs jordemoder-service.

For at lade FIBS selv håndtere trust importeres jordemoder-servicen’s server certifikat til truststore-XXX.jks via Java’s keytool. Derefter ændres passwordet til truststore-XXX.jks og application.properties opdateres med det nye truststore password.

De med releasen leverede truststores (truststore-prod.jks og truststore-test.jks) indeholder de aktuelle SSL certifikater (inklusiv root og intermediate certifikater) som er gældende fra hhv. 24.april 2015 (TEST – kaldt DEMO hos CPR kontoret) og 7. maj 2015 (PROD).

For at kunne holde de to truststores opdateret med de rette SSL certifikater, anbefales der at abonnere på CPR kontorets nyhedsbreve på https://cpr.dk/nyhedsbrev/, hvor opdateringer af SSL certifikater publiceres.

Konfiguration

Grundlæggende konfiguration foregår ved redigering i filen application.properties,  der placeres på følgende placering i den kørende Docker container:

/pack/wildfly8/modules/dk/rsd/fibs/newborns/main/resources/application.properties

Moduldefinitionen er at finde i sourcekoden til SFSK under:

/service/etc/wildfly/modules/dk/rsd/fibs/newborns/main/module.xml

I application.properties skal følgende properties være definerede:

Property

Beskrivelse

Eksempel

dk.rsd.fibs.ssl.trustStoreTruststore, der anvendes i kommunikationen med KJS.classpath:truststore-test.jks
dk.rsd.fibs.ssl.trustStorePasswordPassword til truststore identificeret med property 'dk.rsd.fibs.ssl.trustStore'.Test1234
dk.rsd.fibs.service.endpointURL-endpoint for Kirkeministeriets Jordemoder Service

https://soapmm-demo.cpr.dk/cpr-axis2Jboss/services/MidwifeRegistration_2

https://soapmm.cpr.dk/cpr-axis2Jboss/services/MidwifeRegistration_2
dk.rsd.fibs.service.soapActionSoap-action, der skal angives i kommunikationen med KJS.http://localhost:8080/axis2/services/MidwifeRegistration_2/Input
dk.rsd.fibs.crypto.keyStore

Keystore, der anvendes i kommunikationen med KJS.

Indeholder certifikat, der skal anvendes til signering af beskeder.

Det relevante certifikat, skal ligge i dette keystore med alias 'fibs'.

classpath:keystore-test.jks
dk.rsd.fibs.crypto.keyStorePasswordPassword til keystore identificeret med property 'dk.rsd.fibs.crypto.keyStore'.Test1234
dk.rsd.fibs.crypto.keyStore.aliasPasswordPassword til certifikatet med alias 'fibs', der ligger i keystore identificeret med property 'dk.rsd.fibs.crypto.keyStore'Test1234
dk.rsd.fibs.SOSIFederationAngivelse af, hvilken SOSI Føderation FIBS skal anvende (kan antage værdierne 'SOSITestFederation' og 'SOSIFederation'SOSIFederation
dk.rsd.fibs.node.nameEntydigt navn på den node/maskine, som servicen kører på. Bruges til at læse/skrive node-specifikke properties i databasen.localhost
jdbc.JNDINameDatasource, der anvendes til FIBS persistering.java:jboss/datasources/SDMDS
cpr-gctp.urlURL-endpoint for CPR-servicen til registrering af nyfødte.https://gctp.cpr.dk/cpr-online-gctp/gctp

Database-properties

Efter installation skal FIBS servicen konfigureres via database properties.

Properties ligger i tabellen Fibs_Properties_Local.  Opslag på properties fungerer ved at lede efter en række, hvor property-navnet matcher den property der ledes efter, og nodename matcher det, som servicen er konfigureret med i dk.rsd.fibs.node.name.

Der findes følgende properties:

  • MYNDIGHEDSKODE
  • USER
  • PW

En property indsættes således:

INSERT INTO Fibs_Properties_Local (PropertyKey,PropertyValue,NodeName) VALUES ("<key>", "<value>", "<nodename>");

Der skal være en række for hver node, som servicen kører på.

Placering af logfiler

Komponenten logger til sin egen rullende log som hedder 'fibs.log'.


Komponents SLA logninger havner i 'nsputil-sla.log', medmindre der konfigureres til andet.


I den kørende Docker container ligger logfilerne i :

/pack/wildfly/standalone/log/ 

Indgange i loggen indeholder en kort beskrivelse af hændelsen, tidspunktet samt hændelsens alvorlighedsgrad ('Severity').
Ved drift bør der ikke være indgange af alvorlighedsgrad 'ERROR' i loggen. Se overvågningsvejledning nedenfor.

Placering af konfigurationsfiler

Komponentens konfiguration er placeret i den kørende Docker container i følgende directory:

/pack/wildfly8/modules/dk/rsd/fibs/newborns/main/resources/

Ændringer i konfigurationen af komponenten træder først i kraft efter genstart af komponenten. Se vejledning nedenfor.

Placering af wsdl-filer

Komponentens wsdl er udstillet på følgende url:

<host>/fibs/wsdl/fibs.wsdl

De tilhørende artefakter som refereres fra wsdl-filen er også udstillet.

Start/stop vejledning

Skal komponenten genstartes gøres det ved at genstarte den docker container som komponenten kører i.
Efter genstart bør der verificeres at der ikke er nogen indgange med alvorlighedsgrad 'ERROR' i komponentens log.

Overvågning

Udover at overvåge selve applikationsserveren for ressourceknaphed og generelle fejl kan man overvåge FIBS ved at:

  1. Sikre, at endpointet svarer, ved at foretage simple HTTP GET kald mod komponents 'check' status side:
    1. http://<HOST>:<PORT>/fibs/check
      Viser en minimal status side hvor der står
      Configuration Ok 
      FIBS version: 2.0.14-SNAPSHOT
      FIBS database Ok.


      Der svares med en HTTP status 200 hvis alt er OK. Hvis der er fejl, som f.eks. databasen ikke kan kontaktes, så returneres der en HTTP status 500.
  2. Overvåge komponentens logfil for 'ERROR' indgange

Backup

Der bør foretages backup af komponentens egne konfigurationsfiler hver gang konfigurationen ændres.
For at gøre eventuelt fejlfinding nemmere anbefales det, at der ligeledes tages backup af komponentens logfiler.

  • No labels