Formålet med dette dokument er at give en detaljeret beskrivelse af dem konkrete funktionalitet, der udbydes af Seal.Java anvendelsesområdet Service Consumer.
Dokumentet henvender sig primært til udviklere, der skal i gang med at anvende Seal.Java som Service Consumer.
Dokumentet bygger i høj grad på den overordnede Seal.Java - Guide til udviklere, som giver et overblik over Seal.Java og leverer i denne sammenhæng et mere dybdegående teknisk beskrivelse af den funktionalitet der udbydes i Seal.Java når den anvendes af en Service Consumer.
Der findes følgende funktionalitet når Seal.Java anvendes som Service Consumer:
| Funktion | ||
|---|---|---|
| DGWS System ID kort | ||
| DGWS Bruger ID kort | ||
eHDSI |
Eksempel på opbygning af kald til STS:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Build ID Card // -------------------------------------------------------------------- SystemIDCard idCard = factory.createNewSystemIDCard(...); // -------------------------------------------------------------------- // 3. Build STS request // -------------------------------------------------------------------- SecurityTokenRequest securityTokenRequest = factory.createNewSecurityTokenRequest(); securityTokenRequest.setIDCard(idCard); Document doc = securityTokenRequest.serialize2DOMDocument(); |
Eksempel på fortolkning af svar fra STS:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Parse STS response // -------------------------------------------------------------------- SecurityTokenResponse response = factory.deserializeSecurityTokenResponse(securityTokenResponseXml); // -------------------------------------------------------------------- // 3. Get ID Card // -------------------------------------------------------------------- IDCard idCard = response.getIDCard(); |
Eksempel på opbygning af kald til STS:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Build ID Card // -------------------------------------------------------------------- SystemIDCard idCard = factory.createNewUserIDCard(...); // -------------------------------------------------------------------- // 3. Build STS request // -------------------------------------------------------------------- SecurityTokenRequest securityTokenRequest = factory.createNewSecurityTokenRequest(); securityTokenRequest.setIDCard(idCard); Document doc = securityTokenRequest.serialize2DOMDocument(); |
Eksempel på fortolkning af svar fra STS:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Parse STS response // -------------------------------------------------------------------- SecurityTokenResponse response = factory.deserializeIDCard(securityTokenResponseXml); // -------------------------------------------------------------------- // 3. Get ID Card // -------------------------------------------------------------------- IDCard idCard = response.getIDCard(); |
Eksempel på opbygning af kald til STS:
// --------------------------------------------------------------------
// 1. Factory
// --------------------------------------------------------------------
EHDSIFactory factory = new EHDSIFactory();
// --------------------------------------------------------------------
// 2. Build SAML Assertion
// --------------------------------------------------------------------
// Build Dkncp Boostrap SAML Assertion
DkncpBootstrapSamlAssertionBuilder assertionBuilder= factory.createDkncpBootstrapSamlAssertionBuilder(vault, issuer);
// Set values for the SAML Assertion
assertionBuilder.setIssuer("http://sosi");
assertionBuilder.setAudienceRestriction("https://fmk");
.
.
// Sign and validate Dkncp Bootstrap SAML Assertion
DkncpBootstrapSamlAssertion assertion = assertionBuilder.build();
assertion.validateSchema();
assertion.validateSignatureAndTrust(vault);
// --------------------------------------------------------------------
// 3. Build STS request
// --------------------------------------------------------------------
// Build Dkncp Bootstrap request
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder requestBuilder = factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestDOMBuilder();
requestBuilder.setAudience("https://sosi");
requestBuilder.setSigningVault(holderOfKeyVault);
requestBuilder.setDkncpBootstrapToken(assertion);
// Build and sign the final STS request
requestBuilder.build() |
Eksempel på fortolkning af svar fra STS:
// --------------------------------------------------------------------
// 1. Factory
// --------------------------------------------------------------------
EHDSIFactory factory = new EHDSIFactory();
// --------------------------------------------------------------------
// 2. Parse STS response
// --------------------------------------------------------------------
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseModelBuilder responseBuilder =
factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseModelBuilder();
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponse response = responseBuilder.build(responseDocument);
// Validate entire response
response.validateSignature();
response.validateSignatureAndTrust(getHolderOfKeyFederation());
// --------------------------------------------------------------------
// 3. Get SAML Assertion
// --------------------------------------------------------------------
// Get and validate the identity token from the response
EhdsiIdwsXuaEmployeeIdentityToken identityToken = response.getEhdsiIdwsXuaEmployeeIdentityToken();
identityToken.validateSchema();
identityToken.validateSignatureAndTrust(vocesVault); |