Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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)VerifikationMapning til DDS ServiceActor
SecurityContextTicketAudienceMatche audience som findes som konfiguration i Dokumentdelingsservice 


ValidityIsValidEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeSkal være CitizenBrugertypen: Borger


IdentifierFormatSkal være CPR


IdentifierSkal være satPersonIdentifier


GivenNameVerificeres ikke - må gerne være der


SurNameVerificeres ikke - må gerne være der


CredentialsVerificeres ikke - må gerne være der


PersistentUniqueKeyVerificeres 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)

VerifikationMapning til DDS ServiceActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der


ValidityIsValidEr valid

Message
Verificeres ikke - må gerne være der

ActingUserUserTypeMå ikke være der

PrincipalUserUserTypeMå ikke være der

OrganisationIdentifierFormatSkal være CVR


IdentifierSkal være der og skal være "niveau 3" whitelistet


NameVerificeres 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
TicketisValid
true

Federation
Test

Audience


Created
2025-06-19T11:52:36Z

ValidFrom
2025-06-19T11:47:36Z

ValidTo
2025-06-20T11:47:36Z
MessageIdentifier
346d3126-e1e5-47a0-bd4f-8e3735910d62

ConversationIdentifier
0d4c8217-fd48-4c43-a85d-c9f1a48eaec6

Action

ActingUserType
HealthcareProfessional

IdentifierFormat
CPR

Identifier
0911809931

GivenName
Edgar

SurName
Codd

CredentialsAuthorizationCode


EducationCode


NationalRoleurn:dk:healthcare:national-federation-role:code:41008:value:SpaerAdminR8


UnverifiedRole


PowerOfAttorneyPrivileges

Age


Relation

OrganisationIdentifierFormat
CVR

Identifier33257872

NameSundhedsdatastyrelsen
ClientName
Service Consumer Test

PersistentUniqueKey

...

Resulterende sikkerhedsmodel:

Feltnavn (Nivaeu 1)Feltnavn (Nivaeu 2)Værdi
TicketisValidtrue

FederationTest

Audiencehttps://audience.nspop.dk/minspaerring

Created2025-06-19T11:43Z

ValidFrom2025-06-19T11:38Z

ValidTo2025-06-19T11:48Z
MessageIdentifier7e2a1f0e-7fe8-4467-b81b-b305199462ea

ConversationIdentifier

Actionurn:dk:nsi:consentservices:administration:service:1#ConsentAdd
ActingUserTypeCitizen

IdentifierFormatCPR

Identifier0606786666

GivenName

SurName

Age

Relation
ClientNameMyTestSystem

PersistentUniqueKeyUI:DK-O:G:8d3fa047-c77e-47e4-bdd2-e91488610ce6

...

Resulterende sikkerhedsmodel:

Feltnavn (Nivaeu 1)Feltnavn (Nivaeu 2)Værdi
TicketAudiencehttp://audience.nspop.dk/test

ValidityIsValidtrue

Created2025-06-19T11:14:48+02:00

ValidFrom2025-06-19T11:14:48+02:00

ValidTo2025-06-19T11:16:48+02:00
MessageIdentifier

ConversationIdentifier

Action
ActingUserTypeCitizen

IdentifierFormatCPR

Identifier1234567890

GivenNameHenning

SurNameThomsen

Age

RelationChildCustodyHolder

PersistentUniqueKey46f8cb60-4e29-42ba-8d08-501a34375b6b
PrincipalUserTypeCitizen

IdentifierFormatCPR

Identifier0987654321

GivenName

SurName

Age

RelationChild
ClientNameMyTestSystem

...