Formål

Dette dokument beskriver installation og konfiguration af DGWS/IDWS Proxy.

Servicen omfatter en enkelt komponent: WSProxy (war-arkiv, selve proxy’en)

Proxy’en kan ikke stå alene, men anvendes i forbindelse med en service, som requests skal forwardes til, f.eks. FSK.

I denne vejledning beskrives krav til operativsystem og serversoftware, samt installation og konfiguration af Proxyen.

Ændringslog

Version

Dato

Ændring

Ansvarlig

1.0

2017-11-24

Initielt dokument

Trifork

1.12018-05-12Opdateret i forhold til ændringer i version 1.7.5Trifork
1.22018-08-28Bedre beskrivelse af endpoint-mapning, inkl. beskrivelse af muligheder for CVR whitelistTrifork

Krav til miljø

Krav til applikationsservere

Komponenterne er udviklet og testet under Apache Tomcat og Wildfly 8, og kan deployes i produktion på de nævnte applikationsservere. Denne installationsvejledning er rettet mod deployment på Wildfly 8, da det er denne platform, der anvendes på den nationale service platform (NSP).

Applikationsserveren kræver Java 8 eller højere.

Krav til operativsystem

Der stilles ingen krav til operativsystemet, ud over Java-understøttelse. Ubuntu Linux bruges som operativsystem på NSP’en, men udviklingen af komponenten er foretaget på hhv. OS X og Windows 10, og disse platforme kan ligeledes afvikle komponenterne.

Krav til hardware

WSProxy stiller ikke særlige krav til hardware udover dem, der gælder for den services, der skal ageres proxy for.

Deployment på Wildfly 8

Denne sektion beskriver deployment processen på Wildfly 8

Konfiguration af properties

Den primære konfiguration sker gennem wsproxy-<name>.properties, som skal placeres i Wildfly under standalone/configuration/. "name" er navnet på den deployede WAR-fil, eksempelvis "fsk".

Property-filen indeholder følgende properties:

PropertyBeskrivelse
isProductionDenne sættes til true for produktionssystemet, og false for testsystemer. Dette anvendes til at disable/enable bypass-funktionalitet.
ignoreInvalidIdcardInTestModeDenne kan sættes til true I testsystemer, hvilket muliggør anvendelse af ikke-validere id-kort i forbindelse med DGWS-kald.
idws.audienceRestriction.canSkipDenne kan sættes til true I testsystemer for at disable check på audience ved IDWS kald.
idws.audienceRestriction.acceptedURIDette definerer audience for IDWS kald.
idws.requestTransformation.clearMustUnderstandVisse IDWS SOAP-headers er forsynet med attributten MustUnderstand=”1”. Dette betyder, at den service, som proxyen forwarder til, skal svare positivt på at disse SOAP-headers behandles. Men da formålet med proxyen er at foretage behandlingen af disse headers i stedet for servicen, er der behov for at kunne fjerne dette krav fra servicen. Såfremt clearMustUnderstand sættes til true, vil MustUnderstand blive ændret til ”0” inden forward.
idws.responseSignerKeystore.locationDette specificerer hvilken keystore, der skal anvendes til signering af udgående IDWS responses. Prefixes med ”file:”.
idws.responseSignerKeystore.passwordPassword til keystore.
idws.responseSignerKeystore.aliasAlias for certifikat i keystore.
idws.responseSignerKeystore.typeType af keystore, f.eks. pkcs12

Konfiguration af endpoints

Mapning mellem indgående requests til proxy’en, og de endpoints, der skal forwardes til, specificeres i proxyconfig-<name>.xml, hvor name er navnet på proxy’ens war-fil.

Filen placeres ligesom wsproxy.properties i Wildfly under standalone/configuration/.

Følgende illustrerer strukturen af endpoint-konfiguration:

<ProxyConfiguration>
    <DestinationContext>/fsk-service</DestinationContext>
    <Endpoints>
        <Endpoint>
            <Type> </Type>
            <InPrefix> </InPrefix>
            <Pattern> </Pattern>
            <OutPrefix> </OutPrefix>
            <SecurityLevel> </SecurityLevel>
        </Endpoint>
...
        <Endpoint>
...
        </Endpoint>
    </Endpoints>
</ProxyConfiguration>


Der kan således konfigureres et antal mapninger, som hver definerer typen af kald, sikkerhedsniveau, URL for endpoint i Proxy, samt eventuelle modufikationer til URL inden viderestilling.

Følgende beskriver de enkelte parametre:

TagBeskrivelseEksempel
Type

Angiver typen af kald for denne mapning. Følgende kan angives:

DGWS: Den Gode Webservice
IDWS:
AUDO_DGWS_IDWS: Autodetektering af DGWS og IDWS
SOAP: Almindeligt SOAP kald
OTHER - HTTP viderestilling

Kun typerne AUTO_DGWS_IDWS og OTHER anvendes i forbindelse med FSK. Sidstnævnte tillader viderestilling af kald til isAlive og dksconfig.

DGWS
InPrefix

Prefix for endpoint i proxy'en. Dette anvendes til at specificere et endpoint i Proxy'en, som fjernes inden der stilles videre til den bagvedliggende service.

Eksempelvis kan man specificere 2 endpoints med type  DGWS og IDWS og prefix hhv. /dgws og /idws, som stilles videre til det samme  bagvedliggende endpoint.

/dgws
Pattern

Regulært udtryk for endpoint. Et request matcher kun et endpoint såfremt requestet's URL starter med InPrefix, og efterfølgende matcher dette regulære udtryk.

Eksempelvis vil /dgws/services/fsk matche, hvis der er defineret InPrefix=/dgws og Pattern=/services/.*. Proxy'en vil i dette tilfælde stille videre til /fsk-service/services/fsk

/services/.*
OutPrefixDette anvendes, hvis der skal tilføjes et prefix til URL'en i forbindelse med viderestilling. Eksempelvis vil angivelse af /fsk bevirke at der kan defineres et endpoint i Proxy'en som f.eks. /dgws/services, som så viderestilles til /fsk-service/services/fsk/fsk
SecurityLevel

Krævet sikkerhedsniveau for DGWS kald. Angiv 3 for VOCES/FOCES eller 4 for MOCES når typen er DGWS eller AUTO_DGWS_IDWS. Dette kan undlades for øvrige mapnings-typer.

Siden Proxy version 1.7.10 er der tilføjet mulighed for at angive en liste på følgende format: <SecurityLevel>[level1][:cvrliste1];[level2][:cvrliste2];...</SecurityLevel>.
Dette anvendes i praksis til at angive 4;3:31908574, hvilket betyder at der generelt kræves niveau 4, men CVR-nr. 31908574 (sundhed.dk) tillades at anvende niveau 3.

4


Konfiguration af logging

Logning konfigureres i log4j2-wsproxy-<contextroot>.xml, som i Wildfly placeres i standalone/configuration/. Dvs. hvis proxy'en deployes som fsk.war til brug for fsk-service.war, skal filen hedde log4j2-wsproxy-fsk.xml.

Der defineres følgende logger, som er specifik for WSProxy:

<Logger name="dk.sds" level="debug" additivity="false">
     <AppenderRef ref="ProxyFile"/>
</Logger>

Derudver er der mulighed for at defineret en logger til auditlogning. Dette mulighed anvendes ikke i forbindelse med FSK.

<Logger name="audit.dk.sds" level="info" additivity="false">
    <AppenderRef ref="Audit"/>
</Logger>

Der findes et eksempel på konfiguration af logning i installationsvejledningen til FSK.

Deployment af komponenter

Alle komponenter der skal deployes til Wildfly, skal kopieres til mappen standalone/deployments/. Når Proxy-projektet bygges med Maven produceres der 2 war-filer under target: en .war fil, og en .war.original-fil. De kan begge anvendes til deployment, men det anbefales at anvende .original-filen.

Der henvises til driftsvejledningen for yderligere information.

Start/genstart af komponenterne

Alle komponenter kan genstartes ved ”touch” af de enkelte war filer på Wildfly. Alternativt kan Wildfly genstartes ved at køre kommandoen:

service wildfly8 restart

  • No labels