Konfiguration

NSP Access Handler konfigureres i de i installationsvejledningen beskrevne filer. Alle filer findes i Wildfly modulet.

Opsætning

Følgende filer styrer forskellige aspekter af opsætningen af NSP Access Handler.

Tomme linier og linier der starter med et #-tegn ignoreres.

handler.properties

PropertyBetydning
buffersizeStørrelsen på hver del-buffer. Kan ændres til et mindre tal hvis vi oplever stor GC overhead.

accesslog.properties

PropertyBetydning
logCategoryDen log kategori der skal access logges til.
limitDet maksimale antal log entries der må ligge i memory inden et flush tvinges igennem.
delayHvor ofte der skal skrives til disk. ISO-8601 Duration format.

audit.properties

PropertyBetydning
logCategoryPrefixDen log kategori prefix der bruges til at udregne den endelige log kategori.

cra.properties

PropertyBetydning
datasourceDen datasource der bruges til at få fat i CRA databasen
refreshIntervalHvor ofte skal CRA data læses fra databasen
ttlHvor mange minutter CRA data replikering maks må være bagud

jtph.properties

PropertyBetydning
jtph.enabledSkal være sat til true for at Access Handleren parser JTP-H sikkerhedsbilleter og udstiller dem gennem Security API
jtph.keys.[KeyAlias].typeTypen af nøglen. Mulige værdier er secret og pkcs12
jtph.keys.[KeyAlias].fileFilnavnet på det Java KeyStore hvor nøglen er placeret. Anvendes ikke ved typen secret
jtph.keys.[KeyAlias].secretDen delte hemmelige streng (Shared Secret) hvis typen er secret
jtph.keys.[KeyAlias].passwordKodeordet til den konfigurerede Java KeyStore.
jtph.keys.[KeyAlias].aliasAliaset for det valget certifikat i den konfigurerede Java KeyStore.
jtph.issuers.[IssuerAlias].nameNavnet på udstederen af JTP-H sikkerhedsbilletter. Værdien skal være præcis som angivet i billetten.
jtph.issuers.[IssuerAlias].audienceNavnet på modtageren af JTP-H sikkerhedsbilletten. Værdien skal forefindes i billettens liste af modtagere.
jtph.issuers.[IssuerAlias].ttlHvor gammel en billet maks må være for at Access Handleren vil tage imod den. ISO-8601 format (f.eks. PT15M for 15 minutter)
jtph.issuers.[IssuerAlias].assurance.levelDen tilladte værdi af "National Standard for Identiteters Sikringsniveauer".
jtph.issuers.[IssuerAlias].issuance.policyDen tilladte værdi af "Udsteldelsespolitikken for komponenten"

Det kan i nogle tilfælde være nødvendigt at konfigurere flere nøgler, og i sjældne tilfælde flere udstedere. Dette sker ved at angive forskellige værdier for [KeyAlias] og [IssuerAlias].

Værdien der bruges som [IssuerAlias] har i sig selv ikke nogen betydning, men værdien der bruges som [KeyAlias] skal matche den "Key Identifier" udstederen har angivet i sikkerhedsbilletten.

Da det er muligt at anvende tegn i billetten, som ikke kan anvendes i en Java Properties fil, bliver værdien af "Key Identifier" modificeret med følgende algoritme inden den anvendes som nøgle i filen:

  • Fjern tegn fra enden af strengen så den maks er 256 tegn lang.
  • Konverter strengen til små bogstaver.
  • fjern alle tegn der ikke er et bogstav fra a-z eller et tal fra 0-9.
  • Fjern tegn fra enden af strengen så den maks er 32 tegn lang.

Det er muligt at angive flere værdier for de to properties .assurance.level og .issuance.policy ved blot at tilføje .1, .2 til propertien som vist i dette eksempel:

jtph.issuers.sdsoidcserver1.issuance.policy.1=politik
jtph.issuers.sdsoidcserver1.issuance.policy.2=kultur


Access Log

De følgende filer indeholder hver et antal elementer der udvælger de værdier fra requestet der logges ifm adgangslogning.

Hvert element kan mappes til et alias der derved anvendes som attributnavn i det JSON object der produceres, dette gøres på formen:

element -> alias

Hvis der ikke findes en mapning anvendes elementet som attributnavn.

Tomme linier og linier der starter med et #-tegn ignoreres.

httpheaders.config

Hver linie indeholder navnet på en HTTP Header der skal logges.

elementtexts.config

Hver linie indeholder namespace og navn på et XML element hvis tekstuelle indhold logges.

attributevalues.config

Hver linie indeholder navnet på en SAML attribut hvis værdi logges.

jsonwebtoken.config

Hver linie indeholder navnet på en JSON attribut hvis værdi logges.

Skip

De følgende filer indeholder URL patterns.

Tomme linier og linier der starter med et #-tegn ignoreres.

handler.skip

Hvis et request matcher en af disse URL patterns, springes alt funktionalitet i NSP Access Handler over.

log.skip

Hvis et request matcher en af disse URL patterns, springes Access og Audit log over.

crl.skip

Hvis et request matcher en af disse URL patterns, springes CRL tjekket over.

Access Log

NSP Access Handler producerer en access log der ligner den fra den tidligere HTTP Handler, blot med flere elementer. Det er vigtigt at denne log opsamles i splunk.

Audit Log

NSP Access Handler producerer en eller flere audit logs. Det er vigtigt at disse logs opsamles i splunk.

For hver komponent der anvender NSP Audit API bør der defineres en specifik fil i Wildfly konfigurationen (standalone.xml).

Følgende eksempel viser hvordan der defineres en logfil og en kategori til en komponent med navnet "test"

/pack/wildfly8/standalone/configuration/standalone.xml
<!-- Eksempel på en logfil til en komponent med forkortelsen TEST -->
<size-rotating-file-handler name="AUDITLOG_TEST" autoflush="true">
    <file relative-to="jboss.server.log.dir" path="test-audit.log"/>
    <append value="true"/>
    <rotate-size value="1m"/> 
    <max-backup-index value="50"/>
    <formatter>
        <pattern-formatter pattern="%s"/>
    </formatter>
</size-rotating-file-handler>

<!-- Eksempel på en kategori til en komponent med forkortelsen TEST -->
<logger category="dk.sds.nsp.audit.log.test" use-parent-handlers="false">
    <level name="DEBUG" />
    <handlers>
        <handler name="AUDITLOG_TEST"/>
    </handlers>
</logger>

Det er vigtigt at pattern ikke ændres fra %s for den nye logfil.

Overvågning

NSP Access Handler er et platforms tool og har derfor ikke en almindelig NSP overvågningssnitflade. Overvågning sker derfor gennem logfilen accesshandler.log.

  • No labels