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)

Brugeres til at validere

Endpoints

Funktionalitet

/saml/SAMLAssertionConsumerValiderer den indkommende OIOSAML token.

/saml/Logout

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-admin-composelobby-ds.xml

Datasource beskrivelse. 

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

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

...

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

De forskellige konfigurationer adskiller sig primært i logout url 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) under deployment.

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.

...

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 projekt administrator.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.logapplikationslogApplikation
oiosaml-sp.logOIOSAML log
oiosaml-sp-audit.logOIOSAML audit logAudit

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.

...