Page History
...
| Table of Contents | ||
|---|---|---|
|
Snitflade
Borger billetomvekslingen faciliteres i STS af følgende snitflade:
| Adresse | Sikkerhedsniveau | Beskrivelse |
|---|---|---|
| /sts/services/Bst2Idws | Niveau 5 | Ombytter 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:
| Service | Audience | Status |
|---|---|---|
| Fælles medicinkort | I produktion | |
| Fælles stamkort |
| https://fsk | Tilgængelig på test. Ventes i produktion |
| november 2018. | ||
| 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.
...
- 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.
- 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 serviceAdgang 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 .
...