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 følgende routes:

...

Route

...

Funktionalitet

...

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

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

...

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

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

Viser admin funktionalitet

...

administration

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

...

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-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)

/saml/Logout

Brugeres til at validere

Endpoints

Funktionalitet

/saml/SAMLAssertionConsumer

Validerer den indkommende OIOSAML token.

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.

...

Konfigurationsfiler
FilnavnIndhold
nap-adminlobby-ds.xml

Datasource beskrivelse. Database opsætning.

Eksempel:

 

<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=Vigtigt med jndi navn  "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>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

- overrides setting in brs-common.properties


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

Sundhedsdatastyrelsens nap reference
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-adminlobby-ds.xml" - Denne skal matche det NSP miljø hvor komponenten afvikles i.

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-adminlobby-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.log
applikationslog
Applikation
oiosaml-sp.logOIOSAML
log
oiosaml-sp-audit.logOIOSAML
audit log
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.

...