Page History
...
| Table of Contents |
|---|
Beskrivelse
| Multiexcerpt | ||
|---|---|---|
| ||
SOSI-gw (ServiceOrienteret System Integration gateway): Teknologi til at håndtere en standardiseret form for integrationsmekanisme i sundhedssektoren for webservices og certifikater, baseret på nationale og internationale retningslinier og standarder. |
| Multiexcerpt | ||
|---|---|---|
| ||
Der findes to forskellige setup. |
Support ansvarlig: Trifork
NSP: NSP Gateway (NGW) - Leverancebeskrivelse
Forretningsanvendelse
| Multiexcerpt | ||
|---|---|---|
| ||
Relaterede registre og services
| Multiexcerpt | ||
|---|---|---|
| ||
Applikationsbeskrivelse
Centralt NSP Gateway setup
Her beskrives anvendelse af central SOSI-GW, som den der står foran de centrale NSP miljøer (cNSP).
Her er SOSI-GW placeret i et foranstillet miljø, NSP-gateway (NGW).
...
Decentralt NSP Gateway setup
SOSI-GW anvendes også decentralt, hovedsageligt af regionerne, hvor der er etableret systemintegration mellem NSP og regional IT. Dette setup adskiller sig bl.a. ved at DCC her står før SOSI-GW, som vist på diagrammet.
...
SOSI-GW tillader nu alle id-kort niveauer, og proxy interfacet behandler de forskellige niveauer således:
Beskeder som videresendes uden udskiftning af id-kort:
Requests med niveau 2 id-kort
Requests med signeret niveau 3 og 4 id-kort
Øvrige beskeder behandles af SOSI-GW inden viderestilling:
Requests med niveau 1 id-kort
Requests med usigneret niveau 4 id-kort
Datastruktur, Intern register: SOSI-GW
Register properties:
...
Id-kort distribueres over en fælles cache, der drives af multicasting på lokalnettet
Entitetsbeskrivelser
...
lokal: runtimeconfig
Logentry for hændelsen med angivelse af borger, bruger og evt. ansvarlig, organisation og system samt anvender session og tidspunkt.
Lokal konfiguration af SOSI-GW servicen
Den statiske, filbaserede konfiguration af SOSI-GW applikationen holdes på et minimum for at undgå omstændig kopiering af konfiguration, og for lettere at kunne honorere kravet om rullende opdateringer mm. Al anden konfiguration lægges i den lokale database på de enkelte servere og udveksles via multicast.
Konfigurationsdata gemmes altid som et komplet hele, der er forsynet med et tidsstempel, der identificerer og sammenbinder sammenhørende konfigurationsdata
Objektet indeholder informationen:
Objektet indeholder følgende information:
----------------------------------------
`configpk`
`moment` -- ---
id
regKode -- Unique enforced af constraint
cprNrBorger -- CPR-nummer for den borger, hvis data der er forsøgt tilgået.
bruger -- CPR for person som har tilgået eller forsøgt at tilgå borgerens data. CPR 0000000000 kan benyttes efter aftale med NSI, hvor registrator så har ansvaret for at kunne fremfinde personens identitet.
ansvarlig -- CPR på sundhedsperson eller borger, der er handlet på vegne af ifbm. tilgang til eller forsøg på tilgang til borgerens data. CPR 0000000000 kan benyttes efter aftale med NSI, hvor registrator så har ansvaret for at kunne fremfinde personens identitet. Kan være tom.
orgUsingID -- Identifikation af tilknyttet organisation ved hjælp af SOR-kode, SHAK-kode, ydernummer, p-nummer, cvr-nummer eller kommunekode samt angivelse af hvilken af disse typer, der anvendes som identifikation. Anvendes kun, når bruger er sundhedsperson. Når registreringen omhandler sundhedspersons adgang til borgers data er elementet krævet, medmindre andet er aftalt i den serviceaftale, som anvender af servicen har indgået med den dataansvarlige myndighed (NSI).
orgUsingName_id -- relation til OrganisationName
systemName -- Identifikation eller navn på kildesystem hvorfra forsøg på tilgang til borgers data er sket.
handling -- Tekstuel beskrivelse af den handling, bruger har udført i forbindelse med forsøg på tilgang til borgers data.
sessionId -- Et teknisk sessions id, der i kontekst af anvendersystemet unikt identificerer den session, som bruger var i, da handlingen blev gennemført.
tidspunkt -- Tidspunktet for tilgang eller forsøg på tilgang til borgers data. Dato og tid skal anføres i Zulu-tid og med millisekunder.
OrganisationName
Indeholder organisations navnet som brugeren tilhører
timestamp
lokal: runtimeconfig_data
Lokal konfiguration af SOSI-GW servicen
De enkelte værdier til hvert element i configurationen
Objektet indeholder informationen:
--------------------------------------
`datapk`
`elmpk` -- relation til runtimeconfig_element objektet
`idx`
`value`
lokal: runtimeconfig_element
Lokal konfiguration af SOSI-GW servicen
De enkelte elementer i configurationen
Objektet indeholder informationenObjektet indeholder følgende information:
---------------------------------------------
name -- Navn på sundhedspersonens organisation. Når registreringen (LogDataEntry) omhandler sundhedspersons adgang til borgers data er elementet krævet. Bemærk, at navnet skal være meningsfyldt for en borger.
digest -- relation fra LogEntry
Status
Benyttes til at optimere oprydningen af Minlog data.
`elmpk`
`configpk` -- relation til runtimeconfig objektet
`category`
`elmkey`
`valuecount`
lokal: sosigwlog
Auditlogning foretages lokalt på de enkelte servere (SOSGWLOG). Auditlogs persisteres lokalt i de decentrale databaser, der er installeret på alle SOSI-GW servere.
Med et konfigurerbart interval sender hver enkelt server opsamlede logs til den centrale log-merger database server (sosigwgloballog).
Til auditloggen logges følgende:
Proxyrequests Tidspunkt, NameID, Systemid, IP for afsender, endpoint, IDCardID (kortets) unikke id
Service requests Tidspunkt, NameID, Systemid, IP for afsender, operation, status (OK/ERR)
URL requests Tidspunkt, NameID, Systemid, IP for afsender, status (OK/ERR)
Objektet indeholder informationen:
Objektet indeholder følgende information:
------------------------------------------
`lpk` -- -primær nøgle
`id` `systemid` --
`lastUpdated` --
Whitelist config (BRS)
Objektet indeholder de CVR som er whitelisted til brug på test/prod for BRS servicen
identifikation af serveren
`operation`
`cpr`
`moment` -- timestamp
`wsato` -- WSAddressing to, det endelige endpoint-URL
`wsaaction`
`clientip` -- identification af client som kalder SOSI-GW
lokal: Token Cache
SOSI-GW id-kort cache
Id-kort distribueres over en fælles cache, der drives af multicasting på lokalnettet
Når et id-kort skal signeres med føderationens certifikat, kalder SOSI-GW STS’en. Herefter indsætter SOSI-GW id-kortet i en cache.
Ved efterfølgende kald fra anvendersystemet erstattes det medsendte id-kort med det signerede id-kort fra cachen, inden viderestilling til den relevante NSP service.
central: clientip
IP identification af client som kalder SOSI-GW
Del af SOSI-GW audit logning.
Objektet indeholder informationen:
-Objektet indeholder informationen:
---------------------------------------
service_key
-- BRS behandlingsrelationsservice:
+ dk.nsi.auth.query.type.cvr.list - BRS
+ dk.nsi.auth.create.type.cvr.list - BRS
+ dk.nsi.auth.brs.cvr.list - NO_TYPE
-- Min Log:
+ dk.nsi.minlog.registration (registration service)
+ minlogws (opslags service)
service_type
-- NO_TYPE
-- BRS
-- CPRSUBSCRIPTION
cvr -- CVR nummer
comment -- Her anføres NSP Jira nummer som relaterer den enkelte whitelisting
Tabelbeskrivelser
Tabel: LogEntry
CREATE TABLE LogEntry (
id bigint NOT NULL AUTO_INCREMENT,
regKode varchar(36) NOT NULL,
cprNrBorger varchar(10) NOT NULL,
bruger varchar(20),
ansvarlig varchar(20),
orgUsingID varchar(25),
orgUsingName_id int,
systemName varchar(25),
handling varchar(75),
sessionId varchar(46),
tidspunkt datetime NOT NULL,
PRIMARY KEY (id),
CONSTRAINT unique_constraint_regKode UNIQUE (regKode),
INDEX log_cpr_and_timestamp_index (cprNrBorger, tidspunkt))
ENGINE=InnoDB DEFAULT CHARSET=latin1 DEFAULT COLLATE=latin1_swedish_ci;
Tabel: OrganisationName
CREATE TABLE OrganisationName (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(256) NOT NULL,
digest bigint NOT NULL,
PRIMARY KEY (id),
INDEX organisation_name_digest_idx (digest))
ENGINE=InnoDB DEFAULT CHARSET=latin1 DEFAULT COLLATE=latin1_swedish_ci;
Tabel: status
CREATE TABLE `status` (
`id` int NOT NULL,
`lastUpdated` datetime not null,
PRIMARY KEY (`id`)
);
Fil: Minlog.log
Entries sendt til MinLogRegistrationService formatteres og gemmes i en logfil.
Fil: MinlogTransfer.log
Entries sendt til MinLogRegistrationService formatteres og gemmes i en logfil.
Sendes fra dNSP/cNSP til Backend via Minlog Transfer
Tabel: whitelist_config (BRS)
-------------------
`pk`
`clientip` -- identification af client som kalder SOSI-GW
central: operation
operation
Del af SOSI-GW audit logning.
Objektet indeholder informationen:
--------------------------------------
`pk`
`operation`
central: sosigwgloballog
Auditlogning foretages lokalt på de enkelte servere (SOSGWLOG). Auditlogs persisteres lokalt i de decentrale databaser, der er installeret på alle SOSI-GW servere.
Med et konfigurerbart interval sender hver enkelt server opsamlede logs til den centrale log-merger database server (sosigwgloballog).
Til auditloggen logges følgende:
Proxyrequests Tidspunkt, NameID, Systemid, IP for afsender, endpoint, IDCardID (kortets) unikke id
Service requests Tidspunkt, NameID, Systemid, IP for afsender, operation, status (OK/ERR)
URL requests Tidspunkt, NameID, Systemid, IP for afsender, status (OK/ERR)
Del af SOSI-GW audit logning.
Objektet indeholder informationen:
--------------------------------------
`lpk` -- primær nøgle
`systemid` -- identifikation af serveren
`operation`
`cpr`
`moment` -- timestamp
`wsa` -- reference til "wsa" objektet som indeholder `wsato` og `wsaaction`
`clientip` -- identification af client som kalder SOSI-GW
central: systemid
identifikation af serveren hvor logningen blev foretaget.
Del af SOSI-GW audit logning.
Objektet indeholder informationen:
--------------------------------------
`pk`
`systemid` -- identifikation af serveren
central: wsa
Web Service Adressing (wsa)
Del af SOSI-GW audit logning.
Objektet indeholder informationen:
--------------------------------------
`pk`
`wsato` -- WSAddressing to, det endelige endpoint-URL
`wsaaction`
Tabelbeskrivelser
Cache: Token Cache
Id-kort distribueres over en fælles cache, der drives af multicasting på lokalnettet
Når et id-kort skal signeres med føderationens certifikat, kalder SOSI-GW STS’en. Herefter indsætter SOSI-GW id-kortet i en cache.
Ved efterfølgende kald fra anvendersystemet erstattes det medsendte id-kort med det signerede id-kort fra cachen, inden viderestilling til den relevante NSP service.
Tabel: clientip
DB: sosigwgloballog (fælles, delt, database til audit-logging)
CREATE TABLE `clientip` (
`pk` bigint(20) NOT NULL auto_increment,
`clientip` varchar(40) NOT NULL,
PRIMARY KEY (`pk`),
KEY `clientip_idx` (`clientip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: operation
DB: sosigwgloballog (fælles, delt, database til audit-logging)
CREATE TABLE `operation` (
`pk` bigint(20) NOT NULL auto_increment,
`operation` varchar(32) NOT NULL,
PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: RUNTIMECONFIG
DB: sosigwlog (Lokal database til audit-logging og konfigurationsdata for hver SOSI-GW instans)
CREATE TABLE `RUNTIMECONFIG` (
`configpk` bigint(20) NOT NULL auto_increment,
`moment` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`configpk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: RUNTIMECONFIG_DATA
DB: sosigwlog (Lokal database til audit-logging og konfigurationsdata for hver SOSI-GW instans)
CREATE TABLE `RUNTIMECONFIG_DATA` (
`datapk` bigint(20) NOT NULL auto_increment,
`elmpk` bigint(20) NOT NULL,
`idx` int(11) NOT NULL,
`value` varchar(1000) default NULL,
PRIMARY KEY (`datapk`),
KEY `elmpk_idx` (`elmpk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: RUNTIMECONFIG_ELM
DB: sosigwlog (Lokal database til audit-logging og konfigurationsdata for hver SOSI-GW instans)
CREATE TABLE `RUNTIMECONFIG_ELM` (
`elmpk` bigint(20) NOT NULL auto_increment,
`configpk` bigint(20) NOT NULL,
`category` varchar(64) NOT NULL,
`elmkey` varchar(64) NOT NULL,
`valuecount` int(11) NOT NULL,
PRIMARY KEY (`elmpk`),
KEY `configpk_idx` (`configpk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: sosigwgloballog
DB: sosigwgloballog (fælles, delt, database til audit-logging)
CREATE TABLE `sosigwgloballog` (
`pk` bigint(20) NOT NULL auto_increment,
`systemid` int(11) NOT NULL,
`operation` int(11) NOT NULL,
`cpr` varchar(10) NOT NULL,
`moment` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`wsa` int(11) default NULL,
`clientip` int(11) default NULL,
PRIMARY KEY (`pk`),
KEY `moment_idx` (`moment`),
KEY `cpr_moment_idx` (`cpr`,`moment`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: SOSIGWLOG
DB: sosigwlog (Lokal database til audit-logging og konfigurationsdata for hver SOSI-GW instans)
CREATE TABLE `SOSIGWLOG` (
`lpk` bigint(20) NOT NULL auto_increment,
`systemid` varchar(64) NOT NULL,
`operation` varchar(32) NOT NULL,
`cpr` varchar(10) NOT NULL,
`moment` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`wsato` varchar(512) default NULL,
`wsaaction` varchar(512) default NULL,
`clientip` varchar(40) default NULL,
PRIMARY KEY (`lpk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: systemid
DB: sosigwgloballog (fælles, delt, database til audit-logging)
CREATE TABLE `systemid` (
`pk` bigint(20) NOT NULL auto_increment,
`systemid` varchar(64) NOT NULL,
PRIMARY KEY (`pk`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tabel: wsa
DB: sosigwgloballog (fælles, delt, database til audit-logging)
CREATE TABLE `wsa` (
`pk` bigint(20) NOT NULL auto_increment,
`wsato` varchar(512) default NULL,
`wsaaction` varchar(512) default NULL,
PRIMARY KEY (`pk`),
KEY `wsa_idx` (`wsato`(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE whitelist_config (
service_key VARCHAR(50) NOT NULL,
service_type VARCHAR(20) NOT NULL,
cvr CHAR(8) NOT NULL,
comment VARCHAR(100) NULL,
PRIMARY KEY (service_key, service_type, cvr)
); -- ENGINE=InnoDB COLLATE=utf8_bin;
Teknologibeskrivelse
...






