Versions Compared

Key

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

...

Table of Contents
outlinetrue

Snitflade

Borger billetomvekslingen faciliteres i STS af følgende snitflade:

AdresseSikkerhedsniveauBeskrivelse
/sts/services/Bst2IdwsNiveau 5Ombytter OIOSaml bootstrap token til signeret identitytoken rettet mod et givet audience, f.eks. FMK. Token skal være signeret af troværdig tredjepart (nem-login)

Det er ikke muligt 

Bemærk at det udstedte token er rettet mod en konkret anvendelse.

...

Følgende services (hvoraf ikke alle er i produktion i dag) er pt understøttede af borger-billetomvekslingen:


ServiceAudienceStatus
Fælles medicinkort

https://fmk

I produktion
Fælles stamkort
Endnu ikke fastlagtDeployes snarest til
https://fskTilgængelig på test. Ventes i produktion
september
november 2018.
Minlog2

https://minlog2

Tilgængeligt på test1. Ventes i produktion ultimo 2018.

Anvendelse

Anvendere vil typisk anvende Seal.java eller Seal.net. Nyeste Seal.net version er tilgængelig via Nuget. seal.java hentes via det offentligt tilgængelige maven repository ved i et projekt at benytte f.eks.:

<dependency>
<groupId>dk>dk.sosi.seal<seal</groupId>
<artifactId>seal<>seal</artifactId>
<version>2>2.4.2<2</version>
</dependency>

Bemærk at version 2.4.2 er ældste version med API-understøttelse af fuldmagter.

...

  1. CPR claim (obligatorisk). Angiver cpr nummeret på den borger der "sidder bag skærmen". Dette kan enten være tilgængeligt på forhånd i anvender systemet, eller være leveret af borgeren selv i f.eks. en web-grænseflade. Oplysningen vil blive checket op mod en bagvedliggende webservice i Nemid-infrastrukturen.
  2. Fuldmagts-claim (valgfri). Kan benyttes til at angive at den aktuelle borger har fuldmagt til at agere på vegne af en anden borger. Denne fuldmagt vil typisk være afgivet på borger.dk. Oplysningen vil blive checket op mod en bagvedliggende webservice i Nemid-infrastrukturen.

...

// bootstrap token dom is normally fetched by the citizen authenticating himself with NemLog-in
OIOBootstrapToken bootstrapToken = new OIOBootstrapToken(this.bootstrapTokenDom);
OIOSAMLFactory oiosamlFactory = new OIOSAMLFactory();
OIOBootstrapToIdentityTokenRequestDOMBuilder requestBuilder = oiosamlFactory.createOIOBootstrapToIdentityTokenRequestDOMBuilder();
requestBuilder.setOIOBootstrapToken(bootstrapToken);
requestBuilder.setSigningVault(getValidWhitelistedVault());
requestBuilder.setAudience("http://audience/clear");
requestBuilder.setCPRNumberClaim("0501792275");
requestBuilder.setProcurationByCprClaim("1111111118");
Document requestDocument = requestBuilder.build();

final String requestString = XmlUtil.node2String(requestDocument, false, false);
final Document responseDoc = soapClient.execute(requestString);

OIOBootstrapToIdentityTokenResponse response = oiosamlFactory.createOIOBootstrapToIdentityTokenResponseModelBuilder().build(responseDoc);
assertFalse(response.getFaultString(), response.isFault());
response.validateSignature();
response.validateSignatureAndTrust(federation);

final IdentityToken identityToken = response.getIdentityToken();

// identity token can be used to authenticate against backend service
// below we just inspect the result
assertEquals("0501792275", identityToken.getCpr());
assertEquals("http://audience/clear", identityToken.getAudienceRestriction());
assertTrue(identityToken.getIssuer(), identityToken.getIssuer().contains("STS"));
assertEquals("DK-SAML-2.0", identityToken.getAttribute("dk:gov:saml:attribute:SpecVer"));
assertEquals("3", identityToken.getAssuranceLevel());
final BasicPrivileges privileges = identityToken.getPrivileges();
final String privilegeScope = "urn:dk:healthcare:saml:actThroughProcurationBy:cprNumberIdentifier:1111111118";
assertEquals(1, privileges.getPrivileges(privilegeScope).size());
assertTrue(privileges.getPrivileges(privilegeScope).contains("urn:dk:nspop:sts:read"));

...

Der kan anmodes om oprettelse af fuldmagter for yderligere borgere via NSP support: https://www.nspop.dk/category/sup. Der må påregnes lidt ventetid, idet forespørgslen delegeres videre til NemLog-In support.

Whitelisting til kald af STS service

Adgang til borger-billetomvekslingen kræver whitelisting i hhv. test og produktion.

Anmodning om dette kan ske ved oprettelse af support henvendelser via via https://www.nspop.dk/category/sup .

...