Versions Compared

Key

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

...

Sikkerhedshåndtering i SFSK

 Brugertyper

SFSK anvender det på platformen udstillede security-api til at validere de indkommende requests. Alle kald til SFKS skal være lovlige DGWS kald. SFSK understøtter følgende brugertyper:


ID

Som en...

ønsker jeg at..

så jeg...

B1Borgerfremsøge dokumentreferencer til egne dokumenterkan se mine egne data
B2Borger på vegne af

...

fremsøge dokumentreferencer til en anden borgers dokumenterkan se data på denne person, som jeg har en relation til
SF1Sundhedsfaglig med autorisationfremsøge dokumentreferencer til en borgers datakan se data på denne borger
IA-1

Ikke-autoriseret sundhedsfaglig

fremsøge dokumentreferencer til en borgers datakan se dokumenter for denne borger af de typer, som min rolle giver mig adgang til

...


Systembruger


Uddybende beskrivelse af de enkelte brugertyper samt skema der identificere en brugertype ud fra Security API.

 Bestemmelse og mapning til actor

Borger

Borgerkald sker fra sundhed.dk via system-id-kort udstedt af sundhed.dk.

...

Brugertypen: BorgerVerifikationMapning til SfskActorHsuidHeader
SecurityContextTicketAudienceVerificeres ikke - må gerne være der  


ValidityEr valid


Message
Verificeres ikke - må gerne være der


ActingUser
Må ikke være der
Der skal være en valid HsuidHeader der beskriver en "Borger":

ValidatedHsuidAttributes.isCitizen()        true
v.isRelationChildCustodyHolder()          false
v.getActingUserCivilRegistrationNumber()   skal være udfyldt
v.getCitizenCivilRegistrationNumber()       skal være tom

v = ValidatedHsuidAttributes.getValidatedCitizenHsuidAttributes()

PrincipalUser
Må ikke være der


OrganisationIdentifierSkal være deractorId


IdentifierFormatSkal være der og skal være CVRactorIdType

...


Borger på vegne af

...

Fuldmagtsbaseret borgeropslag fra sundhed.dk via system-id-kort udstedt af sundhed.dkSundhed.dk er trustet til at lave fuldmagtsopslag fra en borger på vegne af en anden borger.

...

Brugertypen: Borger på vegne af anden borgerVerifikationMapning til SfskActorHsuidHeader
SecurityContextTicketAudienceVerificeres ikke - må gerne være der  


ValidityEr valid


Message
Verificeres ikke - må gerne være der


ActingUser
Må ikke være der
Der skal være en valid HsuidHeader der beskriver en "Borger på vegne af anden borger":

ValidatedHsuidAttributes.isCitizen()        true
v.isRelationChildCustodyHolder()            true
v.getActingUserCivilRegistrationNumber()   skal være udfyldt
v.getCitizenCivilRegistrationNumber()       skal være udfyldt


v = ValidatedHsuidAttributes.getValidatedCitizenHsuidAttributes()

PrincipalUser
Må ikke være der


OrganisationIdentifierSkal være deractorId


IdentifierFormatSkal være der og skal være CVRactorIdType

...


Sundhedsfaglig med autorisation

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4). Sundhedsfaglige med autorisation, kan lave opslag på borgerens Fælles stamkort via Sundhedsjournalen

...

Brugertypen: Sundhedsfaglig med autorisationVerifikationMapning til SfskActorHsuidHeader
SecurityContextTicketAudienceVerificeres ikke - må gerne være der Skal være tom


ValidityEr valid


Message
Verificeres ikke - må gerne være der


ActingUserUserTypeSkal være HealthcareProfessionalactorType


IdentifierFormatSkal være CPRactorIdType


IdentifierSkal være satactorId


GivenNameVerificeres ikke - må gerne være der



SurNameVerificeres ikke - må gerne være der



Credentials.AuthorizationCodeSkal være sat


PrincipalUser
Må ikke være der


OrganisationIdentifierSkal være der



IdentifierFormatSkal være der og skal være CVR


Client
Verificeres ikke - må gerne være der

...



Ikke-autoriseret sundhedsfaglig

Sundhedsfaglig opslag fra Sundhedsjournalen (og andre whitelistede fagsystemer) med medarbejderbaseret-id-kort (niveau 4) hvor national rolle er tilknyttet (nspSundAssistR1 og nspSundAssistR2 giver adgang til Fælles Stamkort)

...

Brugertypen: Sundhedsfaglig med national rolleVerifikationMapning til SfskActorHsuidHeader
SecurityContextTicketAudienceVerificeres ikke - må gerne være der Skal være tom


ValidityEr valid


Message
Verificeres ikke - må gerne være der


ActingUserUserTypeSkal være HealthcareProfessionalactorType


IdentifierFormatSkal være CPRactorIdType


IdentifierSkal være satactorId


GivenNameVerificeres ikke - må gerne være der



SurNameVerificeres ikke - må gerne være der



Credentials.NationalRoleSkal være der - og skal matche national rolle der er opsat i properties i SFSK


PrincipalUser
Må ikke være der


OrganisationIdentifierSkal være der



IdentifierFormatSkal være der og skal være CVR


Client
Verificeres ikke - må gerne være der

...



Systembruger

Systembaserede opslag fra whitelistede fagsystemer via system-id-kort. Fagsystemer kan enten lave systembaserede opslag, eller via systembaserede opslag opbygge en en lokal registerkopi af Fælles Stamkort, som holdes opdateret ud fra adviseringer fra underliggende registre

...

Brugertypen: SystembrugerVerifikationMapning til SfskActorHsuidHeader
SecurityContextTicketAudienceVerificeres ikke - må gerne være der  


ValidityEr valid


Message
Verificeres ikke - må gerne være der


ActingUser
Må ikke være der
Der skal være en valid HsuidHeader der beskriver en "Systembruger":

ValidatedHsuidAttributes.isCitizen()        false
v.getActingUserCivilRegistrationNumber()   skal være tom
v.getCitizenCivilRegistrationNumber()       skal være tom

v = ValidatedHsuidAttributes.getValidatedCitizenHsuidAttributes()

PrincipalUser
Må ikke være der


OrganisationIdentifierSkal være deractorId


IdentifierFormatSkal være der og skal være CVRactorIdType


 Transformation af brugertyper

Ved kald til SFSK kan en systembruger i virkeligheden være et kald fra en anden brugertype. Det er informationer på HsuidHeaderen der afgør om den skal transformeres til en anden brugertype. Der findes følgende tranformationer:

Gliffy Diagram
namesfsk-brugertyper-transformationer
pagePin1


System  >>

Brugertypen Borger

VerifikationMapning til DDS ServiceActor

cprFromPayload

userType

Er givet fra securityContext pga. rollen borger

Brugertypen: Borger på vegne af





actingUser fra securityContext.


ActingUserCpr




cprFromPayload skal være sat og være  anderledes end actingUser.

ResponsibleUserCpr (fra payload)


systemName


systemName fra actor mappes

systemName







userAuthorizationCode


Verificeres ikke - må gerne være der





vha. actinguser fra security context og cprFromPayload findes en relation

relation


System >>

Brugertypen Borger på vegne af 

VerifikationMapning til DDS ServiceActor

HSUID Header

userType
Skal være der og skal være CITIZEN

Brugertypen: Borger på vegne af



actingUserCivilRegistrationNumber


Skal være der

(valideres indirekte ved at relation med responsibleUser skal være tilstede)

ActingUserCpr


responsibleUserRegistrationNumber


Skal være sat 

Skal være forskellige fra actingUserCivilRegistrationNumber

ResponsibleUserCpr


orgUsingIDType


Verificeres ikke - må gerne være der



orgUsingIDName


Verificeres ikke - må gerne være der



systemName


Verificeres ikke - må gerne være der

systemName fra actor mappes

systemName


systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Verificeres ikke - må gerne være der





vha. actinguser fra hsuid og responsible user fra hsuid slåes den påstående hsuid relation op
(kun værge/forældremyndighed, ikke fuldmagt)

relation




Actor cvr skal være whitelisted



System >>

Brugertypen System

VerifikationMapning til DDS ServiceActor

HSUID Header

userType
Skal være der og skal være CITIZEN

Brugertypen: Borger



actingUserCivilRegistrationNumber


Verificeres ikke - må gerne være der

ActingUserCpr


responsibleUserRegistrationNumber


Verificeres ikke - må gerne være der

ResponsibleUserCpr


orgUsingIDType


Verificeres ikke - må gerne være der



orgUsingIDName


Verificeres ikke - må gerne være der



systemName


Verificeres ikke - må gerne være der

systemName fra actor mappes

systemName


systemVersion


Verificeres ikke - må gerne være der



userAuthorizationCode


Verificeres ikke - må gerne være der





Actor cvr skal være whitelisted



Brugertyperne bliver til sidst valideret for:

  • Alle roller, hvis hsuid header medsendt:
    • hsuid rollen skal matche den på security context
    • hsuid acting user cpr skal matche den aktøren
  • Borger på vegne af
    • Der skal være en relation
  • Sundhedsfaglig og Sundhedsfaglig på vegne af
    • hsuid authorisationkode skal matche den på aktøren
  • Den endelige brugertype må ikke være af typen System


 Kald af bagvedliggende services

...