Indhold
Komponenter
Dette dokument dækker følgende komponent på NSP:
EHMI Sundhedsadresseringsservice (EAS)
Komponenten omfatter tre services:
EAS:
Servicen skal ikke kunne nås direkte. Ingress foregår istedet via. EAS-Ingress-Nginx service.
Servicen udstilles på port 8080.
Egress fra servicen foregår via. EAS-Egress-Nginx mod EHMI mTLS beskyttede services. Keycloak og EER.
Egress mod interne services på NSP foregår via. almindelig httpclient fra Javakoden. Personinformation, Sikrede, SORES.
Type: HAPI FHIR Plain Server (REST service)
Filnavn: eas.war
Url: Skal kun kunne tilgås igennem EAS-Ingress-Nginx.
Status-url: <serverurl>/eas/status
- Alarm-url: <serverurl>/eas/alarm
- Image: registry.nspop.dk/components/eas
EAS-Ingress-Nginx:
Denne service udstilles som indgangen til EAS komponenten.
Servicen udstilles på port 8080.
- Type: Nginx (TLS Terminering)
- Url: <serverurl>/eas/
- Image: registry.nspop.dk/components/eas-nginx
EAS-Egress-Nginx:
Denne service skal ikke udstilles direkte, men skal istedet kunne kaldes internt fra EAS.
Servicen udstilles på port 8080.
Denne service kaldes kun af EAS for udadgående kald mod HHv. EER og Keycloak. Interne services på NSP kaldes direkte fra EAS Java-applikationen.
- Type: Nginx (Udadgående mTLS)
- Url: Skal kun kunne tilgås internt fra EAS servicen.
- Image: registry.nspop.dk/components/eas-nginx
Konfiguration
EAS
EAS har sin egen konfiguration i "application.properties", og har desuden fire integrationer, som hver især har sin egen property-fil med konfiguration:
| Integration | Property-fil |
|---|---|
| EER | eer.properties |
| PersonInformation | personinformation.properties |
| SikredeInformation | sikrede.properties |
| SORES | sores.properties |
Indholdet af de enkelte property-filer findes beskrevet herunder:
EAS (application.properties)
| Property | Beskrivelse | Påkrævet | Default værdi |
|---|---|---|---|
| dk.sds.nsp.audit.DevelopmentAuditProvider.enabled | Hvorvidt audit information logges på stdout som et JSON objekt | Nej | false |
| dk.nsp.eas.audit.component | Komponentnavn til audit-logging | Nej | EAS |
dk.nsp.eas.auth.enabled | Hvorvidt Authentication middleware er slået til - NB. Midlertidig under udvikling. Fjernes igen til endelig release. | Nej | false |
EER (eer.properties)
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
| eer.api.url | URL til EER service | Ja | http://eas-egress-nginx:8080/ehmi-eer/fhir/
| |
| oauth2.client.id | OAuth client id | Ja | eas | eas |
| oauth2.client.secret | OAuth client secret - Kan undlades ved auth via. Klientcertifikater. Afhænger af Authentication Server. | Nej | ||
| oauth2.token.uri | URL til Keycloak OAuth endpoint | Ja | http://eas-egress-nginx:8080/ehmi-auth/realms/ehmi/protocol/openid-connect/token | http://eas-egress-nginx:8080/ehmi-auth/realms/ehmi/protocol/openid-connect/token |
PersonInformation (personinformation.properties)
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
| personinformation.api.url | URL til PersonInformation service | Ja | http://test1.ekstern-test.nspop.dk:8080/stamdata-personinformation/v1 | |
| personinformation.connectTimeout | HTTP connect timeout | Nej | 30 | 30 |
SikredeInformation (sikrede.properties)
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
| sikrede.api.url | URL til SikredeInformation service | Ja | http://test1.ekstern-test.nspop.dk:8080/stamdata-sikredeinformation/2025/07/17 | |
| sikrede.connectTimeout | HTTP connect timeout | Nej | 30 | 30 |
SORES (sores.properties)
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
| sores.api.url | URL til SORES service | Ja | http://test1.ekstern-test.nspop.dk:8080/sores | |
| sores.connectTimeout | HTTP connect timeout | Nej | 30 | 30 |
NSP Accesshandler
EAS anvender NSP Accesshandler til at autentificere JTP-H JWT Tokens.
Det betyder, at jtph.properties skal konfigureres hvilket er nærmere beskrevet her NSP Access Handler - Driftvejledning#jtph.properties
EAS-Ingress-Nginx
Servicen lytter på port 8080 og forwarder requests til http://eas:8080
Ud fra hostname lyttes der på følgende path: /eas/fhir
Alle andre paths vil resultere i en 404.
TLS Terminering
Nedenstående tabel viser hvorhenne i containeren certifikater skal mountes ind, samt hvilken funktion certifikaterne har.
Bemærk: ved ændring af certifikater skal servicen genstartes.
| Fil | Beskrivelse | Påkrævet |
|---|---|---|
/etc/ssl/server.crt | TLS servercertifikat for EAS | Ja |
/etc/ssl/server.key | Privatnøgle for servercertifikat for EAS | Ja |
/etc/ssl/ehmi-ca.pem | Rodcertifikatbundle for udstedende certifikatmyndighed(er) | Ja |
Hostname (eas-host.conf)
Nedenstående tabel beskriver indholdet af eas-host.conf. Konfigurationsfilen indeholder server_name til brug for nginx. Det er påkrævet for, at nginx håndterer request korrekt.
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
server_name | Hostnavn for EAS servicen. Bemærk ingen protokol. | Ja | eas.local localhost | test1.ekstern-test.nspop.dk |
Ingress konfiguration (ingress-nginx.conf)
Denne fil indeholder Nginx konfigurationen for TLS-termineringen.
Der er som udgangspunkt ikke noget der skal konfigureres heri, den skal blot mountes ind under stien:
/etc/nginx/nginx.conf
Hvilket også fremgår af docker-compose setuppet.
EAS-Egress-Nginx
Servicen lytter på port 8080
mTLS
Nedenstående tabel viser hvorhenne i containeren certifikater skal mountes ind, samt hvilken funktion certifikaterne har.
Bemærk: ved ændring af certifikater skal servicen genstartes.
| Fil | Beskrivelse | Påkrævet |
|---|---|---|
/etc/ssl/ehmi-auth/client.crt | Klientcertifikat til kommunikation mod EHMI Keycloak | Ja |
/etc/ssl/ehmi-auth/client.key | Privatnøgle for klientcertifikat til kommunikation mod EHMI Keycloak | Ja |
/etc/ssl/ehmi-eer/client.crt | Klientcertifikat til kommunikation mod EHMI EER service | Ja |
/etc/ssl/ehmi-eer/client.key | Privatnøgle for klientcertifikat til kommunikation mod EHMI EER service | Ja |
/etc/ssl/certs/ca-certificates.crt | Rodcertifikatbundle for udstedende certifikatmyndighed(er). Hvis ikke angivet, anvendes standard OS CA Bundle. | Nej |
Endpoints (ehmi-endpoints.conf)
Nedenstående tabel beskriver de variabler der bliver sat for Nginx i filen ehmi-endpoints.conf.
De er nødvendige for at nginx kan forward request fra EAS mod den rigtige service.
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
$ehmi_auth_host | Hostnavn for EHMI Keycloak. Bemærk ingen protokol. | Ja | dk-ehmi-authserver.t1.hosting.kitkube.dk | dk-ehmi-authserver.t1.hosting.kitkube.dk |
$ehmi_eer_host | Hostnavn for EHMI EER Service. Bemærk ingen protokol. | Ja | dk-ehmi-eer-service.t1.hosting.kitkube.dk | dk-ehmi-eer-service.t1.hosting.kitkube.dk |
Auth Resolver (ehmi-auth-resolver.conf)
Nedenstående tabel beskriver indholdet af ehmi-auth-resolver.conf. Konfigurationsfilen indeholder resolver til brug for Nginx.
Årsagen hertil er, at automatisk tildelt DNS ikke nødvendigvis kan resolve services internt på NSP eller på SDN.
NB: dokumentation for resolver findes her: https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
resolver | DNS Server for at kunne resolve ehmi_auth_host | Ja | 127.0.0.11 valid=30s; | 127.0.0.11 valid=30s; |
EER Resolver (ehmi-eer-resolver.conf)
Nedenstående tabel beskriver indholdet af ehmi-eer-resolver.conf. Konfigurationsfilen indeholder resolver til brug for Nginx.
Årsagen hertil er, at automatisk tildelt DNS ikke nødvendigvis kan resolve services internt på NSP eller på SDN.
NB: dokumentation for resolver findes her: https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
| Property | Beskrivelse | Påkrævet | Default værdi | Eksempel |
|---|---|---|---|---|
resolver | DNS Server for at kunne resolve ehmi_eer_host | Ja | 127.0.0.11 valid=30s; | 127.0.0.11 valid=30s; |
Egress konfiguration (egress-nginx.conf)
Denne fil indeholder Nginx konfigurationen for at etablere udadgående mTLS forbindelser mod hhv.
Der er som udgangspunkt ikke noget der skal konfigureres heri, den skal blot mountes ind under stien:
/etc/nginx/nginx.conf
Hvilket også fremgår af docker-compose setuppet.
Overvågning
EAS udstiller en overvågningsside, som findes beskrevet under "Komponenter".
Fortolkning af overvågningsside
Overvågningssiderne returnerer enten:
- HTTP 200, hvis servicen i øjeblikket kører fint.
- HTTP 500, hvis der er opstået en fejl der kræver indgriben.
Auditlogning
Hvert servicekald medfører en ny indgang i auditloggen, som kan være udfyldt med følgende information, afhængig af konteksten:
| Komponent | Kontekst | Nøgle | Information |
|---|---|---|---|
| EAS | GetReceivingOrganizationByPatientId | patient-id message-type | ID på borgeren Beskedtype |
| EAS | GetReceivingOrganizationByGPId | general-practitioner-id message-type | Ydernummer Beskedtype |
| EAS | GetReceivingOrganizationBySORId | sor-id message-type | SOR-kode Beskedtype |
| EAS | GetListOfGpByPostalCode | postal-code | Postnummer |
Baggrundsjobs
EAS er tilstandsløs, og har ingen baggrundsjobs.