1. Indledning
Seal.Java er udvidet for at understøtte omveksling af et eHDSI IDWS XUA Bootstrap token (DKNCPBST) udsted af "Danish National Contact Point" til et eHDSI IDWS XUA Identity Token (IDWS-eHDSI). Den brugerrettede forklaring på dette er følgende to brugsscenarier:
- Udenlandske apoteker skal kunne udlevere medicin på baggrund af en dansk recept i FMK når en dansk borger henvender sig (ePrescription)
- Udenlandske sundhedspersoner skal kunne hente en oversigt over en dansk borgers sundhedsoplysninger, når de har denne i behandling (PatientSummary).
De danske tjenester skal fortsat være en del af SOSI-føderationen og alene stole på adgangsbilletter udstedt af SOSI-STS.
Med omvekslingssnitfladen indføres et nyt koncept i form af en ’issuance policy’ som indgår i tokens, hvilket skal gøre det muligt for token-udstedere at differentiere mellem forskellige udstedelsespolitiker (fx hvis spærrelister eller registre ikke er tilgængelige). En ’issuance policy’ angives som streng i tokenet fx som ’urn:dk:sosi:ehdsi-idws-xua:standard’.
2. Overblik
Her er et overblik over de metoder og klasser STS'en benytter fra Seal.Java i forbindelse med denne omveksling:
| Klasse | Metode | Beskrivelse |
|---|---|---|
| DkncpBootstrapSamlAssertion | Repræsentere det indgående DKNCP Bootstrap token | |
| EhdsiIdwsXuaEmployeeIdentityToken | Repræsentere det udgående EHDSI IDWS XUA Identity token | |
| DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequest | Repræsentere et deserialiseret request | |
| DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponse | Repræsentere et deserialiseret response | |
| EHDSIFactory | createDkncpBootstrapSamlAssertionBuilder() | Bygger et DkncpBootstrapSamlAssertion (kun test) |
| EHDSIFactory | createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder() | Serialisering af request (kun test) |
| EHDSIFactory | createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeedentityTokenRequestModelBuilder() | Deserialisering af request |
| EHDSIFactory | createEhdsiIdwsXuaEmployeeIdentityTokenBuilder() | Bygger et EhdsiIdwsXuaEmployeeIdentityToken |
| EHDSIFactory | createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseDOMBuilder() | Serialisering af response |
| EHDSIFactory | createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseModelBuilder() | Deserialisering af response (kun test) |
Flowet der viser hvordan STS'en benytter dem:
3. SAML attributter
Den nye profil indeholder følgende SAML attributter:
| Friendly Name | Name | Mandatory |
|---|---|---|
| XSPA Subject | urn:oasis:names:tc:xspa:1.0:subject:subject-id | Yes |
| XSPA Role | urn:oasis:names:tc:xacml:2.0:subject:role | Yes |
| XSPA permissions | urn:oasis:names:tc:xspa:1.0:subject:hl7:permission | No |
| EHDSI OnBehalfOf | urn:ehdsi:names:subject:on-behalf-of | No |
| XSPA Organization | urn:oasis:names:tc:xspa:1.0:subject:organization | No |
| XSPA Organization Id | urn:oasis:names:tc:xspa:1.0:subject:organization-id | Yes |
| EHDSI Healthcare Facility Type | urn:ehdsi:names:subject:healthcare-facility-type | Yes |
| XSPA Purpose of Use | urn:oasis:names:tc:xspa:1.0:subject:purposeofuse | Yes |
| XSPA Locality | urn:oasis:names:tc:xspa:1.0:environment:locality | Yes |
| XUA Patient Id | urn:oasis:names:tc:xacml:2.0:resource:resource-id | Yes |
| NSIS AssuranceLevel | https://data.gov.dk/concept/core/nsis/loa | Yes* |
| NIST AssuranceLevel | dk:gov:saml:attribute:AssuranceLevel | Yes* |
| IDWS XUA SpecVersion | urn:dk:healthcare:saml:SpecVersion | Yes |
| IDWS XUA IssuancePolicy | urn:dk:healthcare:saml:IssuancePolicy | Yes |
| EHDSI Country of Treatment | urn:dk:healthcare:saml:CountryOfTreatment | Yes |
Detaljerne omkring hver enkelt attribut + eksempler er beskrevet her: https://github.com/Sundhedsdatastyrelsen/epps-bootstrap-poc/wiki/eHDSI-IDWS-XUA-Token-Profile-V.02