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:

FilIndhold
module.xmlWildfly modul definition
accesshandler.jarNSP Access Handler Java Archive
cra-ds.xmlCRA datasource opsætning
handler.propertiesOpsætning af buffer størrelse
accesslog.propertiesOpsætning af Access Log
audit.propertiesOpsætning af Audit Log
cra.propertiesOpsætning af CRA forbindelse
httpheaders.configKonfiguration af hvilke HTTP Headers der kommer i Access Log
elementtexts.configKonfiguration af hvilke XML tekst elementer der kommer i Access Log
attributevalues.configKonfiguration af hvilke SAML attributter der kommer i Access Log
jsonwebtoken.configKonfiguration af hvilke JSON Web Token attributter der kommer i Access Log
handler.skipListe af URL patterns som skal skippes af handleren
crl.skipListe 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.

/pack/wildfly8/modules/system/layers/base/dk/sds/nsp/accesshandler/main/module.xml
<?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:

/pack/wildfly8/modules/system/layers/base/dk/sds/nsp/audit/main/module.xml
<?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.

https://nexus.nspop.dk/nexus/content/groups/public/dk/sds/nsp/audit/audit-api/1.0.1/audit-api-1.0.1.jar

JSON

Opret modulet /pack/wildfly8/modules/system/layers/base/org/glassfish/javax/json/1.0.4/ og udfyld module.xml med følgende indhold:

/pack/wildfly8/modules/system/layers/base/org/glassfish/javax/json/1.0.4/module.xml
<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.

https://nexus.nspop.dk/nexus/content/groups/public/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar

Mime4J

Opret modulet /pack/wildfly8/modules/system/layers/base/org/apache/james/mime4j/0.7.2/ og udfyld module.xml med følgende indhold:

/pack/wildfly8/modules/system/layers/base/org/apache/james/mime4j/0.7.2/module.xml
<?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.

https://nexus.nspop.dk/nexus/content/groups/public/org/apache/james/apache-mime4j-core/0.7.2/apache-mime4j-core-0.7.2.jar

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:

/pack/wildfly8/standalone/configuration/standalone.xml
<global-modules>
    <module name="dk.sds.nsp.accesshandler" slot="main" services="true" meta-inf="true"/>
</global-modules>

under noden:

/pack/wildfly8/standalone/configuration/standalone.xml
<subsystem xmlns="urn:jboss:domain:ee:2.0">

Log-opsætning

Der opsættes tre nye logfiler ifm. NSP Access Handler:

/pack/wildfly8/standalone/configuration/standalone.xml
<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:

/pack/wildfly8/standalone/configuration/standalone.xml
<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:

/pack/wildfly8/standalone/deployments/cra-ds.xml
<?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.


  • No labels