Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Ønskes mere information omkring anvendelse kan dette findes på NAP Platform - Guide til anvendere.


Nap-

...

Hvordan fungerer servicen

Single page application med 2 routes:

...

Route

...

Funktionalitet

...

administration

...

I tilfælde af http fejl vises dette til brugeren.

...

Nap-administration overskriver kontekstroden i jboss-web.xml og forventer derfor, at være udstillet på /admin. se eventuelt https://svn.nspop.dk/src/components/nap/nap-compose/trunk/haproxy/nap-haproxy.cfg for at se hvordan en ha-proxy konfigureres.

Service

Konfiguration

configurations.json mappes til /pack/webapp/assets/

...

Key

...

Value

...

Konfigurationen kan ændres runtime, men skal matche loadbalancer indstillingerne.

Håndtering af fejlsituationer og logning

Nap-admin-web er en stateless webapplikation, og der er derfor ingen logning i dette komponent. Fejl vil blive skrevet ud i konsollen. I tilfælde af http fejl bliver klienten præsenteret med en fejl.

Nap-lobby-web

Hvordan fungerer servicen

Single page application med 2 routes:

...

Route

...

Funktionalitet

...

Laver et kald til nap-administration og viser en projektoversigt.

I tilfælde af http fejl vises dette til brugeren.

...

Konfiguration

configurations.json mappes til /pack/webapp/assets/

...

Key

...

Value

...

Konfigurationen kan ændres runtime, men skal matche loadbalancer indstillingerne.

Håndtering af fejlsituationer og logning

nap-lobby-web er en stateless webapplikation, og der er derfor ingen logning i dette komponent. Fejl vil blive skrevet ud i konsollen. I tilfælde af http fejl bliver klienten præsenteret med en fejl.

Nap-test-web

Hvordan fungerer servicen

Nap-test-web fungerer som test-suite til værtsystemer.

Den tester, at kommunikationen over broen fungerer som den skal, og der er således ingen konfiguration, opsætning eller logning.

Håndtering af fejlsituationer og logning

nap-test-web er en stateless webapplikation, og der er derfor ingen logning i denne komponent. Fejl vil dog blive skrevet ud i konsollen. I tilfælde af http fejl bliver klienten præsenteret med en fejl.

Nap-administration

Snitflade

Servicen kalder en database med projekter og udstiller dem på en REST snitfalde.

Endpoints

Funktionalitet

/api/projekter/{id}Validerer den indkommende SAMLAssertion, kalder databasen og henter Projekt(er) baseret på det cvr nummer som er tilknyttet brugerkonteksten.
/api/webapps/{id}Validerer den indkommende SAMLAssertion, kalder databasen og henter WebApp(er).
/api/sessionReturnerer den givne bruger, hvis den findes i databasen.

Overvågningssnitflade

EndpointsFunktionalitet
/isAlive

Bruges af loadbalanceren for at tjekke at servicen er deployet. Returnerer en html side med deployment info.

Hvis der kan oprettes forbindelse til den database, der er konfigureret i datasource "java:jboss/datasources/adminnap-lobby-facade", returneres returneres der statuskode 200, ellers ellers statuskode 500.

Login / logout (OIOSAML)

Endpoints

Funktionalitet

/saml/SAMLAssertionConsumer

Validere autentifikations requests og registrere en brugers assertion i en threadlocal session.

/saml/Logout

Bruges til single til samllogout og sletning af session.

Konfiguration

Konfiguration af NAP-reference sker i filerne "compose/configuration" mappen som er beskrevet i NAP Platform - Installationsvejledning. I det følgende gennemgåes konfigurationsfilernes detaljer.

Følgende konfigurationsfiler skal være tilgængelige i classpath under deployment (loades fra applikationsserverens modules/dk/sds/nsp/nap/admin/main).

# Path to the service provider certificate
keystorePath=nap.jks
# Password to the service provider certificate
keystorePassword=Test1234
# Path where public certificates of trusted STS services are stored
trustedStsCert=trusted-sts-certs.jks
# Password for the trusted sts certifikate keystore
trustedStsCertPassword=Test1234
# The audience, SAML-tokens are required to have
expectedAudience=https://audience.nspop.dk/nap
# Max clock skew
allowedClockDrift=3
JKS fil med certifikater fra STS providers
Konfigurationsfiler
FilnavnIndhold
nap-admin-composelobby-ds.xml

Datasource beskrivelse.

<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema https://docs.jboss.org/ironjacamar/schema/ironjacamar_1_0.xsd">
<datasource jndi-name="java:jboss/datasources/admin" pool-name="MariaDBDS">
<connection-url>jdbc:mysql://napadmindb:3306/administration?autoReconnect=true</connection-url>
<driver>mysql</driver>
<pool>
<max-pool-size>30</max-pool-size>
<min-pool-size>5</min-pool-size>
</pool>
<security>
<user-name>root</user-name>
<password>pw</password>
</security>
<validation>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>10000</background-validation-millis>
</validation>
<timeout>
<idle-timeout-minutes>10</idle-timeout-minutes>
</timeout>
</datasource>
</datasources>
log4j-napadmin.xmllog4j konfiguration
nap.jksJKS fil indeholdende NAP certifikat til audience /nap
nap-admin.propertiestrusted-sts-certs.jks

 

Vigtigt med jndi navn  "java:jboss/datasources/nap-lobby-facade" da dette skal matche konfiguration i  persistence.xml

log4j-napadmin.xmlLog4j opsætninger der følger gængs standard på NSP.

Konfiguration af oiosaml sker i filerne "compose/configuration/oiosaml". 

Der findes en konfiguration til development / localhost-test1 / og test1 (test1 miljøet). 

De forskellige konfigurationer adskiller sig primært for singleLogoutService i SPMetadata og iDpMetadata samt og service provider url i oiosaml-sp.properties.

Oiosaml konfigurationerne skal ligeledes være tilgængelig i oiosaml.home under deployment (oiosaml.home sættes med JAVA_OPTS i compose filerne og er sat til /pack/oiosaml).

Konfigurationsfiler


oiosaml-sp.log4j.xml

lndeholder Log4j opsætninger der følger gængs standard på NSP.
oiosaml-sp.properties

# Properties used by oiosaml-j

# Reference to the location of the certificate used for signing SAML documents with - relative to ${oiosaml.home}

oiosaml-sp.certificate.location=

# Opaque/encrypted password to the certificate used for signing SAML documents
oiosaml-sp.certificate.password

# Required authentication level. 2=password, 3=certificate
oiosaml-sp.assurancelevel

# Name of the meta data file for the current service provider
common.saml2.metadata.sp.filename

# URI References to the current service provider
oiosaml-sp.uri.home

# Force login
#oiosaml-sp.authn.force

# Disable support for self-signed certificates by default
oiosaml-sp.selfsignedcertificates

# Disable revocation checking on OCES test certificats (because the CRL/OCSP endpoints are behind a firewall)
oiosaml-sp.crl.disable-in-oces-test


# Enable this setting to be eid compatible. Note this effects how AuthnRequests are generated
oiosaml-sp.eid.compatible

funktionscertifikat

JKS fil indeholdende Sundhedsdatastyrelsen reference funktionscertifikat certifikat. 

Skal være samme navn som oiosaml-sp.certificate.location i oiosaml-sp.properties

metadata/idP/IdPMetadata.xmlOIOSAML identity provider metadata til konfiguration af OIOSAML filteret
metadata/SP/SPMetadata.xmlOIOSAML service provider metadata til konfiguration af OIOSAML filteret

Hele oiosaml-konfigurations-mappen skal udskiftes til de forskellige miljøer. Så fx for localhost og test1 ser mapning således ud :

- ../configuration/oiosaml/localhost-development:/pack/oiosaml # localhost
- ../configuration/oiosaml/test1:/pack/oiosaml # test1

Database 

Adgang til nap-admin databasen styres gennem filen "nap-lobby-ds.xml" - Denne skal matche det NSP miljø hvor komponenten afvikles.

Da en nap- og projektadministratorer, skal kunne tilføje projekter, og database-brugeren skal kunne tilføje nye nap- og projektadminstratorer skal brugeren fx kunne skrive

insert into User (id, cpr, cvr, admin) values (UuidToBin(UUID()), '0501792275', '20921897', false);

For at tilføje nye projektadministrator.

Desuden forgår der også skrive operationer til samtlige tabeller for at oprette / opdatere / slette projekter og web-aps.

Derfor skal brugeren have read / write rettigheder.


Aktiviteter

For at NAP-admin kan deployes skal der være initieret en tabel i den database, der er defineret i nap-lobby-ds.xml, da hibernate vil tjekke at database schemaet matcher entiteterne i applikationen.

Følgende scripts skal derfor køres:

FilnavnBeskrivelse
create_db_example.sql

Opretter Database

V1__create_tables.sql

Opretter Tabeller

V2__insert_data_localhost.sqlIndsætter projekt data med url pegende på localhost (skal opdateres til url svarende til givende miljø)
V3__update_developer_project_icon.sqlIndsætter projekt ikon for developer projekt
V4__update_test_project_icon.sqlIndsætter projekt ikon for nap-testweb projekt
V5__update_nap_ref_web_project_icon.sqlIndsætter projekt ikon for nap-reference-web
V6__insert_default_user.sqlIndsætter default bruger som projektadministrator
Opdatere webapp urls svarende til det givne miljø

Eksempel på opdatering af url til test1:

use nap;
update Manifest set Manifest.url = "http://test1-nap.insp.nspop.dk:8080/testweb/" where url like "http://localhost:8080/testweb/";
update Manifest set Manifest.url = "http://test1-nap.insp.nspop.dk:8080/reference/" where url like "http://localhost:8080/reference/";

Logning

Alle logfiler er at finde i log/ under WildFly. Herunder findes en liste over alle logfiler med en beskrivelse af hvilke komponenter der skriver til dem. 

Logfilnavn

Komponenter der skriver til denne

nap-admin.logApplikation
oiosaml-sp.logOIOSAML
oiosaml-sp-audit.logOIOSAML Audit

Fejlhåndtering

Applikationsfejl bliver logget ved hjælp af log4j, med type ERROR, INFO, DEBUG alt efter hvor alvorlig fejlen er. 

Nap-test-web

Hvordan fungerer servicen

Nap-test-web fungerer som test-suite til værtsystemer.

Den tester, at kommunikationen over broen fungerer som den skal, og der er således ingen konfiguration, opsætning eller logning.

Håndtering af fejlsituationer og logning

nap-test-web er en stateless webapplikation, og der er derfor ingen logning i denne komponent. Fejl vil dog blive skrevet ud i konsollen. I tilfælde af http fejl bliver klienten præsenteret med en fejl.

Logging

Log4j konfigurationen skal findes i log4j-napadmin.xml på classpath.

Ved default konfiguration skrives alle modul-relaterede fejl til nap-admin.log

Fejlhåndtering

Applikationsfejl bliver logget ved hjælp af log4j, med type ERROR, INFO, DEBUG, alt efter hvor alvorlig fejlen er. 

...