Page History
...
En logisk NSP platform består af en "NSP frontservicefrontoffice", hvor services og deres nødvendige data mv. ligger i en platform.
For nogle services vedkommende, skal der samles data op, foretages periodiske beregninger eller lignende, som i nogle tilfælde også skal distribueres ud til de øvrige NSP'er. Opsamling, beregning og datadistribution foregår normalt i "NSP backoffice". NSP "frontservicefrontoffice" er ikke direkte afhængig af NSP "backoffice". Alle services, der er rettet mod sundhedsfaglige, er som udgangspunkt asynkront afkoblet. Det giver en ekstra kompleksitet, men også en reel uafhængighed, så en NSP i tilfælde af nedbrud andre steder i infrastrukturen kan køre videre i et stykke tid, indtil infrastrukturen igen er fuldt fungerende.
...
Alle services på NSP skal tilgås udefra gennem afkoblingskomponenten (DeCouplingComponent = DCC). Du skal betragte DCC'en som den alleryderste skal på en NSP frontservicefrontoffice instans. Så man skal aldrig bruge et endpoint til en bestemt "Service X", men bruge DCC-komponentens endpoint og angive, at det er "Service X", man gerne vil kalde. Dette giver nemlig fleksibilitet på NSP til at ændre endpointet for en given "Service X", uden at det påvirker anvenderne. Du kan læse mere om DCC'en på DCC'ens leverancebeskrivelsesside.
...
Som skrevet andetsteds er der efterhånden rigtig mange forskellige services tilgængelig på NSP. Nogle retter sig direkte mod sundhedsfaglige slutbrugere (forretningsservices), andre er støtteservices til de sunhedsfagliges sundhedsfagliges fagsystemer, og andre igen retter sig mod borgere, der får vist data i apps eller på Sundhed.dk / Sundhedsjournalen eller andre steder.
...
Både DGWS og IDWS er egentlig eksempler på "Identitetsbaserede Web Services". Hvis du ikke helt ved, hvad det er, eller hvorfor det er smart, så læs lige de indledende afsnit i gennemgangen af IDWS beskrivelsen her.
...
| PlantUML Macro |
|---|
@startuml participant Fagsystem #72BEDB participant STS #72BEDB participant NSP #72BEDB Activate Fagsystem #FF4E26 group Rekvirér SOSIAdgangsbillet ID-kort (kan caches) Fagsystem -> STS: NewSecurityTokenService(OCES signatur ...) Activate STS #FF4E26 return Autentifikationsbevis (SOSI-ID-Kort)Adgangsbillet Deactivate STS end Fagsystem -> NSP: ServiceX(SOSI ID-kortAdgangsbillet,CPR-nr,...) Activate NSP #FF4E26 return ok? @enduml |
...
Så først skal man have en adgangsbillet. Den kan man få ved at have gennemført en passende sikker autentifikationshandling. I DGWS på NSP er det i skrivende stund altid baseret på OCES certifikatinfrastrukturen (MOCES for sundhedsfaglige, Systemcertifikater (FOCES) for systemer). Adgangsbilletter udstedes af STS-servicen på NSP, så det kan du læse meget mere om i i STS'ens anvenderguide.
Bemærk: STS’en skal betragtes som endnu en DGWS service på NSP, så den skal jeres system også whitelistes til at anvende!
...
Nu bliver det lidt mere indviklet, fordi flowet både involverer de fællesoffentlige autentifikations- og trust-services (MitID og NemLogin eller SEB IdP'en) og flere forskellige omvekslinger. Selve OIOIDWS-kaldet sker i skridt 3 i figuren nedenfor, men forinden er borgeren/patienten logget ind gennem NemLogin eller SEB IdP'en, og der er rekvireret en adgangsbillet til E-journal web servicen NSP'ens Organdonorregistreringsservice ved NSP'ens STS service. (For detaljerytteren: Vi ved godt, at E-journal web servicen ikke er tilgængelig på NSP, men det håber vi du kan abstrahere fra . Der er flere andre OIOIDWS services på NSP).
Læs meget mere om IDWS/OIOIDWS her.
Når borgeren skal se oplysninger for en pårørende / nærtstående med fuldmagter
Disposition:
Læs meget mere om IDWS/OIOIDWS her. De fællesoffentlige profiler finder du her hos Digitaliseringsstyrelsen.
Opbygning af service-kald
De data, der sendes og returneres fra en service på NSP overholder en standardiseret struktur:
Ovenstående er et eksempel på strukturen i en DGWS service. En hel del af det, der kan findes her på NSPOP, handler om, hvordan Header oplysningerne og adgangsbilletter er opbygget. Der er lidt forskel på, hvordan et DGWS og et IDWS kald ser ud, men den overordnede struktur er nogenlunde ens.
- I DGWS kald er adgangsbilletten et såkaldt 'SOSI ID-kort' og header- og body-strukturen skal følge "Den Gode Web Service" profilen. I DGWS kald kan adgangsbilletten typisk caches lidt længere og bruges mere på tværs af services end i IDWS kald. Det op til servicen at afgøre, om den medsendte adgangsbillet er "frisk" og stærk nok til at få adgang til servicen. Hvis adgangsbilletten (i forhold til den pågældende service) ikke er god nok, returneres der en fejl, men servicen kan kaldes efter der er rekvireret en ny adgangsbillet.
- I IDWS kald er adgangsbilletten et såkaldt "identity token" og er bundet til et bestemt 'audience'. Typisk kan et identity token kun anvendes i få minutter og kun mod en bestemt service, så der skal veksles lidt oftere. Den overordnede struktur af header og body på IDWS kald følger OIOIDWS SOAP profilen. Den overordnede struktur for IDWS adgangsbilletter (identity tokens) følger OIO Identity Token Profile.
Borgeres adgang til services med fuldmagt
Når en borger ønsker at hjælpe eller støtte en pårørende eller en nærtstående, så kan de få adgang til NSP services med fuldmagt. Fuldmagten afgives i den fællesoffentlige fuldmagtsløsning på Borger.dk.
Når den, der har fået fuldmagt (fuldmagtshaveren), logger ind på f.eks. Sundhedsjournalen/Sundhed.dk, så vælger fuldmagtshaveren, hvem vedkommende gerne vil se eller ændre data for (fuldmagtsgiveren). 'Beviset' for at fuldmagtshaver har en gyldig fuldmagt til at kunne tilgå en bestemt service, indbygges i adgangsbilletten. Det sker i omvekslingen (step 2 ovenfor), hvor Sundhedsjournalen/Sundhed.dk vedlægger et såkaldt "claim" om, at brugeren har fuldmagt. Det efterprøver STS-servicen, og hvis det er korrekt, så indlejres beviset i adgangsbilletten (identity token).
OIO Identity Token Profile er udformet så smart, at der kan indlejres mange forskellige beviser, der kan overholde flere forskellige profiler.
Lige netop for den slags særligt basale privilegier, som en fuldmagt jo er, har Digitaliseringsstyrelsen udarbejdet en rammeprofil, der hedder OIO Basic Privilege Profile. Den regulerer hvordan sådan nogle basale privilegier skal udformes i IdentityToken for IDWS kald. Når OIOBPP ikke længere slår til, kan man lokalt i domænet udvikle andre profiler, hvor der kan opnås bedre standardisering og udtrykskraft. Det benyttede vi os af i 2023-2024, hvor de to nederste profiler på figuren ovenfor (Blurring Instructions Profile og Subject Relations Profile) blev udarbejdet og taget i brug (se evt. mere i ID Sløring projektområdet) - førstnævnte anvendes til at udtrykke sløring, og sidstnævnte anvendes til at udtrykke potentielt adgangsgivende relationer mellem personer, som f.eks. forældremyndighed.
Helt konkrete eksempler på, hvordan sådan nogle profilerede "beviser" ser ud i indlejrede IdentityTokens finder du her:
- Fuldmagter udtrykt i OIOBPP:
- Sløringsinstruktioner udtrykt i Blurring Instructions Profile (BIP profilen):
- Profilbeskrivelse: OIOITP_Blurring_Instructions_Profile-v11.pdf
- IDWS eksempel på BIP attribut
- Relation til pårørende/nærtstående udtrykt i Subject Relations Profile (SRP profilen):
- Profilbeskrivelse: OIOITP_Subjet_Relations_Profile-v11b.pdf
- Eksempler: Se kapitel 4-6 i profilbeskrivelsen.
- Envelope struktur
- Indlejrede assertions Encodede attributværdier


