Versions Compared

Key

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

...

SnitfladeAnvenderkravSærlige opsætningstilfældeModtager
DGWS

/sts/services/SecurityTokenService

/sts/services/NewSecurityTokenService

Alle som har netværksmæssig adgang


Alle DGWS-services
Medarbejderomveksling
/sts/services/Sosi2OIOSamlAlle som har netværksmæssig adgang


Modtagersystem skal være konfigureret:


/sts/services/OIOSaml2Sosi

Alle som har netværksmæssig adgang

Alle DGWS-services
/sts/services/BST2SOSI

Offentlig nøgle for anvendersystem skal være whitelistet: Opsætning af BST2SOSI: Tilføjelse af ny anvender

Alle DGWS-services
Borgeromveksling


/sts/services/Bst2Idws

Offentlig nøgle for anvendersystem skal være whitelistet: Borgeromvekslinger: Whitelisting af anvender

Modtagersystem (audience) skal være konfigureret:

/sts/services/JWT2Idws

Offentlig nøgle for anvendersystem skal være whitelistet: Borgeromvekslinger: Whitelisting af anvender

Modtagersystem (audience) skal være konfigureret:

JWT support skal være aktiveret (i tabellen audienceConfiguration):

/sts/services/JWT2OIOSaml

Offentlig nøgle for anvendersystem skal være whitelistet: Borgeromvekslinger: Whitelisting af anvender

Modtagersystem (audience) skal være konfigureret:

Servicen skal være konfigureret til audience:

eHDSI omveksling
/sts/services/DKNCPBST2EHDSIIdws

Offentlig nøgle for anvendersystem skal være whitelistet:



Servicen skal være konfigureret til audience:

...

Konfigurationen findes i et java keystore (pt. placeret som /pack/sts/test-jwt-idp-trust.jks ). Dette indeholder de certifikater vi stoler på.

...

  1. Modtag offentlig nøgle fra den eksterne part.
  2. Modtag information om hvilket kid der angives i det indgående JWT (key identifier der benyttes af den eksterne part).
  3. Verificer at nøglen tilhører det rigtige miljø (test vs produktion) - og er et gyldigt FOCES certifikat
  4. Indsæt nøglen under et alias svarende til det angivne kid i /pack/sts/test-jwt-idp-trust.jks
  5. Ændringen kræver genstart af STS (eller wildfly)

...

I de følgende afsnit gennemgås konfigurationerne for de enkelte snitflader. De enkelte snitfladers opsætning beskrives og derudover beskrives en opskrift/checkliste i forhold til tilslutning af nye anvendere.

Generel konfiguration

HTTP status kode ved SOAP faults

Den HTTP status kode der benyttes når der returneres en SOAP fault, er konfigureret i service.xml

Status koden vil blive benyttet i alle snitflader.

Code Block
languagexml
<bean id="httpCodeForFaultResponse" class="java.lang.Integer">
    <constructor-arg value="400"/>
</bean>


Konfiguration af DGWS
Anchor
KonfigurationDGWS
KonfigurationDGWS

...

Nationale roller vil optræde i id-kortet som en rolle på formen urn:dk:healthcare:national-federation-role:code:40001:value:Laegesekretaer

Følgende felter er relevante

FeltBeskrivelse
sourceKan benyttes til at identificere hvor de konkrete roller ligger. Pt. er eneste benyttede værdi 'NationalFederation'
externalNameDet navn hvorunder rollen optræder i den eksterne kilde (SEB brugerkataloget) , f.eks. 'nspLaegesekretaer'
codeDen kode der indgår i id-kortet, f.eks. 40001
valueDen tekst-værdi der indgår i id-kortet, f.eks. Laegesekretaer

Konfiguration i database er altid den gældende — det er ikke nødvendigt at genstarte før ændringer træder i kraft - der kan dog være op til 10 minutters forsinkelse.

...

SnitfladeTrust og opsætning
Medarbejderomveksling
/sts/services/Sosi2OIOSaml
  • Det indkommende idkort skal være signeret af STS selv (udstedt af /NewSecurityTokenService)
  • Der skal være konfigureret et audience, der matcher det, som anvenderen angiver i requestet.
/sts/services/OIOSaml2Sosi
  • OIOSaml assertion skal være signeret af trusted part (i test-new-nemLogin-idp.keystore) - i praksis NemLog-In
/sts/services/BST2SOSI
  • Bootstrap token skal være signeret af trusted part (konfigureret i database tabellen sts_audconf.trustedIdpConfiguration). Lokal IdP, SEB eller NemLog-in

...

attributeBeskrivelse
certificate.xxx

Angiver SubjectSerialNumber (ssn) for et certifikat der har mulighed for at benytte servicen. Dette certifikat benyttes af anvender til at signere hele beskeden. Sættes issuer til "*" vil certifikatet være gyldigt for alle issuers.

Der kan være flere certifikater pr. issuer, hvilket blot betyder at flere anvendere kan tilgå det. Disse skal blot have forskellige xxx navne.  Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen. 

Bemærk: Benyttes kun hvis whitelist-checks er slået til (property whitelistValidation)

...

SnitfladeTrust og opsætning
Borgeromveksling
/sts/services/Bst2Idws

Bootstrap token skal være signeret af trusted part (konfigureret i database tabellen sts_audconf.trustedIdpCitizenConfiguration).

I praksis NemLog-In eller SEB

/sts/services/JWTIdws

JWT skal være signeret af trusted part (i test-jwt-idp-trust.jks). kid skal pege på det rigtige alias i denne.

Issuer skal være konfigureret i services.xml

/sts/services/JWT2OIOSaml

JWT skal være signeret af trusted part (i test-jwt-idp-trust.jks). kid skal pege på det rigtige alias i denne.

Issuer skal være konfigureret i services.xml

...

attributeBeskrivelse
certificate.xxx

Angiver SubjectSerialNumber (ssn) for et certifikat (typisk FOCES) der har mulighed for at benytte servicen. I praksis beder vi om det offentlige certifikat og henter oplysningen ud herfra.

Dette certifikat benyttes af anvender til at signere hele beskeden (beskeden har så bl.a. en Assertion, typisk signeret af NemLog-in). Der kan (og vil) være flere certifikater pr. audience, hvilket blot betyder at flere anvendere kan tilgå det. Disse skal blot have forskellige xxx navne.  Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen.

...

Anvender skal kende det eksisterende jwtScope.

JWT2OIOSaml

Den generelle konfiguration for denne service ligger i services.xml på bean sboRequestHandler:

PropertyBeskrivelse
checkTargetCertificateOm gyldigheden af certifikat svarende til publicKey (i nedenstående tabel) skal tjekkes før den benyttes
fuzzyTimeAntal millisekunder tilbage i tid notBefore skal sættes på resulterende token
allowedDriftInSecondsAntal sekunder tidsbegrænsninger i indgående token må afvige med
trustStoreFileSti til keystore med trusted eksterne idp'er
trustStorePasswordPassword til keystore
issuerStrategiesListe af gyldige issuers. Fx <entry key="http://sts-tester" value-ref="keyCloak"/>

...

Er audience allerede i audienceConfiguration tabellen, skal der oprettes en ny certificate.xxx attribut med ssn for anvendercertifikatet. Anvender skal kende det eksisterende jwtScope.

Opsætning af borgeromvekslinger: Integration til personinformation

Det er indført en integration til personinformation-servicen på NSP ifm. implementation af "subject relations", dvs. claims om at en borger er værge eller har forældremyndigheder ift. en anden borger.

I den forbindelse er der en integration, som skal have en sat URL til personinformation. Denne konfiguration findes i service.xml på bean personInformationClient:

...

SnitfladeTrust og opsætning
eHDSI omveksling
/sts/services/DKNCPBST2EHDSIIdws

Bootstrap token skal være signeret af trusted part (konfigureret i database tabellen sts_ehdsiconf.ehdsiAudienceConfiguration).

...

attributeBeskrivelse
lifetimeAngiver gyldighed af det udstedte token, f.eks. 3600 (s). Tilstedeværelsen af denne "aktiverer" det givne audience
fuzzyTimeAntal millisekunder tilbage i tid notBefore skal sættes på resulterende token
certificate.xxx

Angiver SubjectSerialNumber (ssn) for et certifikat der har mulighed for at benytte servicen. Dette certifikat benyttes af anvender til at signere hele beskeden. 

Der kan være flere certifikater pr. issuer, hvilket blot betyder at flere anvendere kan tilgå det. Disse skal blot have forskellige xxx navne.  Suffikset er ligegyldigt og tjener alene til støtte for den som kigger på konfigurationen. 

Bemærk: Benyttes kun hvis whitelist-checks er slået til (property whitelistValidation)

signingKey.xxx

Trusted public key som kan verificere signatur på bootstrap token (en issuer kan have flere nøgler med forskellige xxx navne).

validateHOK

Angivelse af om holder-of-key (HoK) validering af requests skal udføres (true, false).

allowedDriftInSeconds

Antal sekunder tidsbegrænsninger i indgående token må afvige med. (NotBefore, NotOnOrAfter attributterne)

whitelistValidation

Om whitelist-checks af anvender certifikater skal være slået til eller fra

...

Code Block
INSERT INTO ehdsiPoliciesConfiguration (audience, bst_policy, sts_policy) VALUES ('https://audience.nspop.dk/ehdsi', 'urn:dk:sosi:sts:eHDSI-strict', 'test-ehdsi-sts-policy');
INSERT INTO ehdsiPoliciesConfiguration (audience, bst_policy, sts_policy) VALUES ('https://audience.nspop.dk/ehdsi', 'test-another-ehdsi-bst-policy', 'test-ehdsi-sts-policy');

Opsætning af borgeromvekslinger: Integration til personinformation

Omvekslingen benytter servicen PersonInformation til at validere Cpr nummer på det indkomne token.

I den forbindelse er der en integration, som skal have en sat URL til personinformation. Denne konfiguration findes i service.xml på bean personInformationClient:

...

Følgende tabel viser STS’ens sla logpunkter samt tilhørende navn. De enkelte logpunkter beskrives i detaljer i det følgende.

IDNavnBeskrivelse
200
AbstractStsRequestHandler.request
Alle forespørgelser, der modtages rammer dette logpunkt.
210
SecurityTokenService.issueIdCard
Når et IDKort signeres, vil dette logpunkt blive ramt.
220
WsOcesCvrRidService.findRelatedCpr
Ved opslag til CVR-RID tjenesten vil dette logpunkt blive ramt.
221
WsOcesPidService.isRelated
Ved opslag til PID tjenesten vil dette logpunkt blive ramt.
222
ProcurationWebService.getProcurationPrivileges
Ved opslag til Fuldmagt tjenesten vil dette logpunkt blive ramt.
250
NboRequestHandler.serialize
Ved omveksling mellem  OIOSaml tokens (NemLogin tokens) til SOSI
idkort vil dette log punkt blive brugt.
260
SignatureProvider.sign
Dette logpunkt kaldes når STS signerer enten et id-kort eller en IDWS billet.
270
NboIdwsRequestHandler.convert
Dette logpunkt ved omveksling af andet token til et borger-IDWS-token
280BST2SOSIRequestHandler.convertVed omveksling fra OIO BST token til SOSI idkort.

...