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.1 | 2018-05-12 | Opdateret i forhold til ændringer i version 1.7.5 | Trifork |
1.2 | 2018-08-28 | Bedre beskrivelse af endpoint-mapning, inkl. beskrivelse af muligheder for CVR whitelist | Trifork |
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:
Property | Beskrivelse |
---|---|
isProduction | Denne sættes til true for produktionssystemet, og false for testsystemer. Dette anvendes til at disable/enable bypass-funktionalitet. |
ignoreInvalidIdcardInTestMode | Denne kan sættes til true I testsystemer, hvilket muliggør anvendelse af ikke-validere id-kort i forbindelse med DGWS-kald. |
idws.audienceRestriction.canSkip | Denne kan sættes til true I testsystemer for at disable check på audience ved IDWS kald. |
idws.audienceRestriction.acceptedURI | Dette definerer audience for IDWS kald. |
idws.requestTransformation.clearMustUnderstand | Visse 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.location | Dette specificerer hvilken keystore, der skal anvendes til signering af udgående IDWS responses. Prefixes med ”file:”. |
idws.responseSignerKeystore.password | Password til keystore. |
idws.responseSignerKeystore.alias | Alias for certifikat i keystore. |
idws.responseSignerKeystore.type | Type 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:
Tag | Beskrivelse | Eksempel |
---|---|---|
Type | Angiver typen af kald for denne mapning. Følgende kan angives: DGWS: Den Gode Webservice 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/.* |
OutPrefix | Dette 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>. | 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