Page History
...
Med introduktionen af NSP Security API er det ikke længere nødvendigt for den enkelte komponent at beskrive og håndtere DGWS og IDWS konkret i koden. Det kan derfor lade sig gøre at udstille snitfladebeskrivelser, der er renset for sikkerhedsprotokollen, da komponenten kan anvende NSP Security API.
Med tiden er der opstået behov for at NSP Security API kan håndterre REST baserede services og JSON Web token (JTP-H profil). Komponenter der gør brug af dette, og vil levere en fejl tilbage til anvenderen i selve REST-kaldet, så fejlen kan findes i svaret fra kaldet i JSON format.
Hvis komponenterne renses for sikkerhedsprotokol-afhængige snitfladebeskrivelser og kode, vil der på sigt blive mindre kode at vedligeholde.
...
NSP Security API kan også håndtere JSON Web token (JTP-H profil) der er REST baserede og her vil en evt. fejl kunne findes i svaret fra kaldet i JSON format.
Aktørmodellering og dokumentation
Som nævnt i første afsnit, stiller NSP Security API en række håndtag til rådighed for den anvendende komponent. Det er komponentens egen opgave at:
...
- Hvilke brugertyper er til stede i min komponent?
- Hvordan skal disse brugertyper tjekkes/mappes i forhold til de forretningsregler, der gælder i min komponent?
Understøttede brugertyper og dokumentation i Brugerhistorier
En given NSP komponent skal forholde sig til, hvilke brugertyper den understøtter. Dette er i høj grad en forretningsmæssig beslutning, og det er vigtigt at en komponent dokumenterer de understøttede brugertyper. Dokumentationen af brugertyperne og de brugerhistorier, som de indgår i foretages i dokumenttypen Brugerhistorier. Et eksempel på et sådant dokument er DROS - Brugerhistorier. Mange eksisterende NSP komponenter har ikke dette dokument, men en succesfuld anvendelse af NSP Security API forudsætter, at det eksisterer. Derfor bør indførelsen af NSP Security API først ske efter, at denne dokumentation er udarbejdet. Denne dokumenttype er ikke et teknisk dokument og indholdet skal som minimum gennemlæses og verificeres af SDS NSP arkitekt og Product Owner.
...
Se i øvrigt Dokumentationskrav for NSP-platformen for at få et overblik over de dokumentationspakker, der bør være til stede i forbindelse med en NSP leverance.
Mapning fra NSP Security API til understøttede brugertyper og dokumentation i Design og Arkitektur
Når dokumentationen af de understøttede brugertyper er på plads, så skal den konkrete mapning og verifikation fra NSP Security APIs context til sin egen aktørmodel laves.
...
| Brugertypen Borger (borgerbillet) | Verifikation | Mapning til DDS ServiceActor | ||
| SecurityContext | Ticket | Audience | Matche audience som findes som konfiguration i Dokumentdelingsservice | |
| ValidityIsValid | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Skal være Citizen | Brugertypen: Borger | |
| IdentifierFormat | Skal være CPR | |||
| Identifier | Skal være sat | PersonIdentifier | ||
| GivenName | Verificeres ikke - må gerne være der | |||
| SurName | Verificeres ikke - må gerne være der | |||
| Credentials | Verificeres ikke - må gerne være der | |||
| PersistentUniqueKey | Verificeres ikke - må gerne være der | |||
| PrincipalUser | Må ikke være der | |||
| Organisation | Må ikke være der | |||
| Client | Verificeres ikke - må gerne være der | |||
Brugertypen Borger (sundhed.dk) | Verifikation | Mapning til DDS ServiceActor | ||
| SecurityContext | Ticket | Audience | Verificeres ikke - må gerne være der | |
| ValidityIsValid | Er valid | |||
| Message | Verificeres ikke - må gerne være der | |||
| ActingUser | UserType | Må ikke være der | ||
| PrincipalUser | UserType | Må ikke være der | ||
| Organisation | IdentifierFormat | Skal være CVR | ||
| Identifier | Skal være der og skal være "niveau 3" whitelistet | |||
| Name | Verificeres ikke - må gerne være der | |||
| Client | Verificeres ikke - må gerne være der | |||
HSUID Header | Det verificeres, at HSUID headeren findes, og at den modellerer en borger. NB. I praksis bør HSUID Headeren foldes ud, hvis den bruges, og anvendelsen af de enkelte egenskaber beskrives på samme måde som ovenstående egenskaber fra NSP Security API. | Brugertypen: Borger PersonIdentifier | ||
Konkrete eksempler på sikkerhedsbilletter
I det følgende vises tre konkrete eksempler på hvordan DGWS, IDWS og JTP-H kald ser ud når de omsættes til en NSP Security API sikkerhedsbillet.
Her efter kommer der nogle kodeeksempler, der viser hvordan en komponent kan anvende håndtagene i NSP Security API til at verficere indkommende kald.
Eksempel på DGWS billet
Hvis billetten indeholder denne SAML attribut, så er der tale om en DGWS billet:
...
Resulterende sikkerhedsmodel:
| Feltnavn (Niveau 1) | Feltnavn (Niveau 2) | Feltnavn (Niveau 3) | Værdi |
| Ticket | isValid | true | |
| Federation | Test | ||
| Audience | |||
| Created | 2025-06-19T11:52:36Z | ||
| ValidFrom | 2025-06-19T11:47:36Z | ||
| ValidTo | 2025-06-20T11:47:36Z | ||
| Message | Identifier | 346d3126-e1e5-47a0-bd4f-8e3735910d62 | |
| ConversationIdentifier | 0d4c8217-fd48-4c43-a85d-c9f1a48eaec6 | ||
| Action | |||
| ActingUser | Type | HealthcareProfessional | |
| IdentifierFormat | CPR | ||
| Identifier | 0911809931 | ||
| GivenName | Edgar | ||
| SurName | Codd | ||
| Credentials | AuthorizationCode | ||
| EducationCode | |||
| NationalRole | urn:dk:healthcare:national-federation-role:code:41008:value:SpaerAdminR8 | ||
| UnverifiedRole | |||
| PowerOfAttorneyPrivileges | |||
| Age | |||
| Relation | |||
| Organisation | IdentifierFormat | CVR | |
| Identifier | 33257872 | ||
| Name | Sundhedsdatastyrelsen | ||
| Client | Name | Service Consumer Test | |
| PersistentUniqueKey |
...
Resulterende sikkerhedsmodel:
| Feltnavn (Nivaeu 1) | Feltnavn (Nivaeu 2) | Værdi |
| Ticket | isValid | true |
| Federation | Test | |
| Audience | https://audience.nspop.dk/minspaerring | |
| Created | 2025-06-19T11:43Z | |
| ValidFrom | 2025-06-19T11:38Z | |
| ValidTo | 2025-06-19T11:48Z | |
| Message | Identifier | 7e2a1f0e-7fe8-4467-b81b-b305199462ea |
| ConversationIdentifier | ||
| Action | urn:dk:nsi:consentservices:administration:service:1#ConsentAdd | |
| ActingUser | Type | Citizen |
| IdentifierFormat | CPR | |
| Identifier | 0606786666 | |
| GivenName | ||
| SurName | ||
| Age | ||
| Relation | ||
| Client | Name | MyTestSystem |
| PersistentUniqueKey | UI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6 |
...
Resulterende sikkerhedsmodel:
| Feltnavn (Nivaeu 1) | Feltnavn (Nivaeu 2) | Værdi |
| Ticket | Audience | http://audience.nspop.dk/test |
| ValidityIsValid | true | |
| Created | 2025-06-19T11:14:48+02:00 | |
| ValidFrom | 2025-06-19T11:14:48+02:00 | |
| ValidTo | 2025-06-19T11:16:48+02:00 | |
| Message | Identifier | |
| ConversationIdentifier | ||
| Action | ||
| ActingUser | Type | Citizen |
| IdentifierFormat | CPR | |
| Identifier | 1234567890 | |
| GivenName | Henning | |
| SurName | Thomsen | |
| Age | ||
| Relation | ChildCustodyHolder | |
| PersistentUniqueKey | 46f8cb60-4e29-42ba-8d08-501a34375b6b | |
| PrincipalUser | Type | Citizen |
| IdentifierFormat | CPR | |
| Identifier | 0987654321 | |
| GivenName | ||
| SurName | ||
| Age | ||
| Relation | Child | |
| Client | Name | MyTestSystem |
...