Dette dokument beskriver installationen af NSP Access Handler 2. Vær opmærksom på at NSP Access Handler erstatter de tidligere Security Handler og HTTP Handler (også kaldet Log Handler), disse skal derfor fjernes fra Wildfly ifm installationen af NSP Access Handler. Vær ligeledes opmærksom på at tidligere versioner af Access Handler ikke kan køre sammen med version 2 og fremad.
NSP Access Handler
NSP Acces Handler er en Wildfly Servlet Extension der intercepter alle requests og foretager et antal opgaver på request og response content.
Access Log
Der produceres en access log i JSON format som indeholder informationer fra sikkerhedsheaderen mv.
Audit Log
Der produceres en audit log hvis den kaldende komponent anvender NSP Audit API-old.
Certificate Revocation Check
Der foretages et CRL tjek af certifikatet i sikkerhedsheaderen. Tjekket er afhængig af at databasen fra CRA er tilgængelig på det valgte miljø. Det anbefales at køre CRA på andet miljø og fordele data via replikering i MySQL.
Leverancen
Leverancen indeholder følgende filer:
Fil | Indhold |
---|---|
module.xml | Wildfly modul definition |
accesshandler.jar | NSP Access Handler Java Archive |
cra-ds.xml | CRA datasource opsætning |
handler.properties | Opsætning af buffer størrelse |
accesslog.properties | Opsætning af Access Log |
audit.properties | Opsætning af Audit Log |
cra.properties | Opsætning af CRA forbindelse |
httpheaders.config | Konfiguration af hvilke HTTP Headers der kommer i Access Log |
elementtexts.config | Konfiguration af hvilke XML tekst elementer der kommer i Access Log |
attributevalues.config | Konfiguration af hvilke SAML attributter der kommer i Access Log |
jsonwebtoken.config | Konfiguration af hvilke JSON Web Token attributter der kommer i Access Log |
handler.skip | Liste af URL patterns som skal skippes af handleren |
crl.skip | Liste af URL patterns som skal skippes af CRL tjekket |
I Driftvejledningen er disse filer yderligere beskrevet.
Wildfly Moduler
Følgende 4 Wildfly moduler skal opsættes.
Access Handler
Opret modulet /pack/wildfly8/modules/system/layers/base/dk/sds/nsp/accesshandler/main/ og placer filerne module.xml, accesshandler.jar og alle konfigurationsfilerne (*.properties, *.config, *.skip) fra leverancen deri.
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="dk.sds.nsp.accesshandler"> <resources> <resource-root path="accesshandler.jar" /> <resource-root path="." /> </resources> <dependencies> <module name="javax.api"/> <module name="dk.sds.nsp.audit"/> <module name="org.bouncycastle" /> <module name="javax.servlet.api" /> <module name="javax.xml.stream.api" /> <module name="org.apache.commons.pool" /> <module name="io.undertow.core" services="import" /> <module name="org.apache.james.mime4j" slot="0.7.2" /> <module name="io.undertow.servlet" services="import" /> <module name="org.glassfish.javax.json" slot="1.0.4"/> </dependencies> </module>
Den ovenstående module.xml er ligeledes indeholdt i leverancen.
Audit API
Opret modulet /pack/wildfly8/modules/system/layers/base/dk/sds/nsp/audit/main/ og udfyld module.xml med følgende indhold:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="dk.sds.nsp.audit"> <resources> <resource-root path="nsp-audit-api.jar" /> </resources> </module>
Hent NSP Audit API fra Nexus, omdøb filen til nsp-audit-api.jar og placer den i modulet.
JSON
Opret modulet /pack/wildfly8/modules/system/layers/base/org/glassfish/javax/json/1.0.4/ og udfyld module.xml med følgende indhold:
<module xmlns="urn:jboss:module:1.3" name="org.glassfish.javax.json" slot="1.0.4"> <properties> <property name="jboss.api" value="private"/> </properties> <dependencies> </dependencies> <resources> <resource-root path="javax.json-1.0.4.jar"/> </resources> </module>
Hent Glassfish JSON fra Nexus og placer filen i modulet.
Mime4J
Opret modulet /pack/wildfly8/modules/system/layers/base/org/apache/james/mime4j/0.7.2/ og udfyld module.xml med følgende indhold:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.3" name="org.apache.james.mime4j" slot="0.7.2"> <resources> <resource-root path="apache-mime4j-core-0.7.2.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="org.apache.commons.logging"/> </dependencies> </module>
Hent Apache James Mime4J fra Nexus og placer filen i modulet.
Wildfly opsætning
NSP Access Handler skal aktiveres i filen /pack/wildfly8/standalone/configuration/standalone.xml, ligeledes skal log konfigurationen sættes op deri.
Aktivering af Wildfly Servlet Extension
Følgende xml sniplet skal indsættes:
<global-modules> <module name="dk.sds.nsp.accesshandler" slot="main" services="true" meta-inf="true"/> </global-modules>
under noden:
<subsystem xmlns="urn:jboss:domain:ee:2.0">
Log-opsætning
Der opsættes tre nye logfiler ifm. NSP Access Handler:
<size-rotating-file-handler name="ACCESSHANDLER_APP" autoflush="true"> <file relative-to="jboss.server.log.dir" path="accesshandler.log"/> <append value="true"/> <rotate-size value="1m"/> <max-backup-index value="50"/> <formatter> <named-formatter name="PATTERN"/> </formatter> </size-rotating-file-handler> <size-rotating-file-handler name="ACCESSLOG" autoflush="true"> <file relative-to="jboss.server.log.dir" path="access.log"/> <append value="true"/> <rotate-size value="1m"/> <max-backup-index value="50"/> <formatter> <pattern-formatter pattern="%s"/> </formatter> </size-rotating-file-handler> <size-rotating-file-handler name="AUDITLOG" autoflush="true"> <file relative-to="jboss.server.log.dir" path="audit.log"/> <append value="true"/> <rotate-size value="1m"/> <max-backup-index value="50"/> <formatter> <pattern-formatter pattern="%s"/> </formatter> </size-rotating-file-handler>
Det er vigtigt at pattern ikke ændres fra %s for access.log og audit.log.
Der opsættes også tre tilsvarende logkategorier:
<logger category="dk.sds.nsp.accesshandler" use-parent-handlers="false"> <level name="DEBUG" /> <handlers> <handler name="ACCESSHANDLER_APP"/> </handlers> </logger> <logger category="dk.sds.nsp.access.log" use-parent-handlers="false"> <level name="DEBUG" /> <handlers> <handler name="ACCESSLOG"/> </handlers> </logger> <logger category="dk.sds.nsp.audit.log" use-parent-handlers="false"> <level name="DEBUG" /> <handlers> <handler name="AUDITLOG"/> </handlers> </logger>
De nye filer har følgende indhold:
accesshandler.log
Information, advarsler og fejl fra selve NSP Access Handler logges her. Filen skal opsamles i Splunk.
access.log
Denne fil indeholder en access log med en linie for hvert request, linien indeholder et JSON object. Filen skal opsamles i Splunk og tilknyttes sourcetype=json_auto_timestamp
access.log
Denne fil erstatter HTTP Handlerens fil nsp-httphandler.log - Det vil sige at alle Splunk søgninger mv som direkte angiver source som nsp-htphandler.properties i stedet for at angive sourcetype skal opdateres.
audit.log
Denne fil er en fail-safe for de NSP Audit API logninger som ikke er konfigureret til at ramme deres egen audit fil. Se driftvejledningen for detaljer. Filen skal opsamles i Splunk.
Certifikate Revokation Authority
Hvis ikke CRA er deployet på samme instans (og filen cra-ds.xml derved allerede findes) skal filen lægges under /pack/wildfly8/standalone/deployments/
Filen findes i releaset og indeholder følgende:
<?xml version="1.0" encoding="UTF-8"?> <datasources> <datasource jndi-name="java:jboss/datasources/CRARO" pool-name="craDS" enabled="true" spy="true"> <connection-url>jdbc:mysql:///cra?autoReconnect=true</connection-url> <driver>mysql</driver> <security> <user-name>cra</user-name> <password>cra</password> </security> <validation> <check-valid-connection-sql>select 1</check-valid-connection-sql> <validate-on-match>true</validate-on-match> <background-validation>true</background-validation> <background-validation-millis>10000</background-validation-millis> </validation> </datasource> </datasources>
Hvis navnet på datasourcen laves om skal dette også ændres i filen cra.properties.