Versions Compared

Key

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

...

Nedenstående diagram viser opbygningen af IDSAS som service. Diagrammet viser "registration" som eksempel, men "lookup" og "salt" er bygget op efter samme model, dog uden integration til "personinformation" eller "SORES".

Der er er en forenkling, da der i praksis er tale om fire services:

  • idsas-registration: Den primære service som håndterer "Slørring". Her findes operationen operationerne "CreateBlurring" og "CreateOrgBlurring".
  • idsas-lookup: En service der kun håndterer "Opslag", dvs. operationen "GetBlurredOrganisations".
  • idsas-salt: En service der håndterer hentning af salt, dvs. operationen "GetCurrentSalt".
  • idsas-operations: En service der kun benyttes af driften til automatiske jobs.

De fire services er ret ens opbygget, har en del fælles kode som de deles om via et maven-modul, har samme programstruktur og bruger samme database.Der er integration til "personinformation" som kun bruges ifm. at sløringer bliver oprettet-modul.

Gliffy Diagram
bordertruemacroId783f4eb7-bf07-4f40-b6f2-c1387819ec19
displayNameOverblik over IDSAS
nameOverblik over IDSAS
pagePin3551

De fire services har tilsammen Selve løsningen består af følgende moduler i maven:

ModulnavnBeskrivelse
idsas-apiSelve API'en, for
begge
de tre eksterne services, defineres i dette modul som WSDL-filer. Modules primære formål er at generere Java-kode ud fra WSDL'erne, som kan bruges i de andre moduler.
idsas-commonFælles kode for de to moduler, primært utility-funktioner og DAO-klasser.
idsas-integration-testsEn modul som indeholder alle integrationstests for begge services.
idsas-integrationsEt modul som indeholder integrationer, pt. kun "personinformation". Anvendes af "idsas-services".
idsas-servicesForretningslogik til alle services findes i dette modul, samt forretningslogik til de to batchjobs i "idsas-operations-web".
idsas-lookup-webWeb-modulet til Opslag, som håndterer opstart af service og producerer den war-fil, der skal deployes.
idsas-registration-webWeb-modulet til Slørring, som håndterer opstart af service og producerer den war-fil, der skal deployes.
idsas-salt-webWeb-modulet til hentning af salt, som håndterer opstart af service og producerer den war-fil, der skal deployes.
idsas-operations-webWeb-modulet med endpoints til automatiske jobs: Fornyelse af salt, sletning af inaktive sløringer.

Driftsarkitektur

I praksis er de forskellige services fordelt på BackOffice og en eller flere Frontend-miljøer. Registration, Lookup og Salt kører alle på et NSP Frontend-miljø, og via en Kafka-kø, bliver alle ændringer sendt igennem MirrorMaker til Operations-servicen på NSP BackOffice. Det er her alle ændringer bliver persisteret til databasen.

Dog vil der i en overgangsperiode også være en Registration-service kørende på NSP BackOffice, som skriver direkte til databasen, når den bliver kaldt. Dette er for er være bagudkompatibel med de anvendere, som tog IDSAS i brug, før der blev omlagt til at sende alle ændringer igennem en Kafka-kø.

Gliffy Diagram
nameIDSAS driftsarkitektur
pagePin1

Sikkerhed

Brugertyper

De enkelte brugertyper bestemmes ud fra modellen, der udstilles i Security API. Disse regler er opsummeret i skemaerne herunder. Sikkerhedsmodellen tager udgangspunkt i Security API - Guide til anvendere.

...

Brugertypen: HealthcareProfessionalVerifikationMapning til IdsasActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


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


CredentialsVerificeres ikke - må gerne være der

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
Brugertypen: SystemVerifikationMapning til IdsasActor
SecurityContextTicketAudienceVerificeres ikke - må gerne være der 


ValidityEr valid

Message
Verificeres ikke - må gerne være der

ActingUser
Må ikke være der

PrincipalUser
Må ikke være der

OrganisationIdentifierSkal være deractorId


IdentifierFormatSkal være der og skal være CVRactorIdType

Clientname

Skal være der ved kald til GetBlurredOrganisations, og må også gerne være der ellers (men verificeres ikke).
Bruges aktuelt til at tjekke at det er STS'en der kalder, og ingen andre.

clientSystemName


persistentUniqueKeySkal være der ved kald til GetCurrentSalt, og må også gerne være der ellers (men verificeres ikke)
Bruges til whitelisting af de anvendersystemer der skal hente salt til pseudoanonymisering.
clientKey

...