Formålet med dette dokument er at give en detaljeret beskrivelse af dem konkrete funktionalitet, der udbydes af Seal.Java anvendelsesområdet Security Token Service.
Dokumentet henvender sig primært til udviklere, der skal i gang med at anvende Seal.Java til omvekslinger i en Security Token Service.
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 Security Token Service.
Seal.Java understøtter følgende omvekslinger når den anvendes i en Security Token Service:
Funktion | ||
|---|---|---|
| DGWS System ID kort | ||
eHDSI |
Eksempel når STS modtager et DGWS kald med et System ID kort:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Parse STS request // -------------------------------------------------------------------- SecurityTokenRequest request = factory.deserializeSecurityTokenRequest(securityTokenRequestXml) // -------------------------------------------------------------------- // 3. Get ID Card // -------------------------------------------------------------------- IDCard idCard = request.getIDCard(); |
Eksempel på det svar STS sender efter at have modtaget et DGWS kald med et System ID kort:
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- SOSIFactory factory = new SOSIFactory(new EmptyCredentialVault(), new Properties()); // -------------------------------------------------------------------- // 2. Build signed ID Card // -------------------------------------------------------------------- signedIdCard = factory.copyToVOCESSignedIdCard(idCard, ...); // -------------------------------------------------------------------- // 3. Build STS response // -------------------------------------------------------------------- SecurityTokenResponse response = factory.createNewSecurityTokenResponse(request); response.setIDCard(signedIdCard); |
Eksempel når STS modtager et Dkncp Bootstrap token
// -------------------------------------------------------------------- // 1. Factory // -------------------------------------------------------------------- EHDSIFactory factory = new EHDSIFactory(); // -------------------------------------------------------------------- // 2. Parse STS request // -------------------------------------------------------------------- // Deserialize (parse) request: DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequest request = factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenRequestModelBuilder().build(requestDocument); // validate request request.validateSignatureAndTrust(holderOfKey); request.validateHolderOfKeyRelation(); // -------------------------------------------------------------------- // 3. Get SAML Assertion // -------------------------------------------------------------------- // Get Dkncp Bootstrap Saml Assertion DkncpBootstrapSamlAssertion assertion = request.getDkncpBootstrapSamlAssertion(); // The Dkncp Bootstrap Assertion can be schema validated after serialize/deserialize assertion.validateSchema(); assertion.validateSignatureAndTrust(vocesVault); |
Eksempel på det svar STS sender efter at have modtaget et Dkncp Bootstrap token:
// --------------------------------------------------------------------
// 1. Factory
// --------------------------------------------------------------------
EHDSIFactory factory = new EHDSIFactory();
// --------------------------------------------------------------------
// 2. Build eHDSI Identity Token SAML Assertion
// --------------------------------------------------------------------
EhdsiIdwsXuaEmployeeIdentityToken ehdsiIdwsXuaEmployeeIdentityToken = buildEhdsiIdwsXuaEmployeeIdentityToken(vault, holderOfKeyVault);
ehdsiIdwsXuaEmployeeIdentityToken.validateSchema();
ehdsiIdwsXuaEmployeeIdentityToken.validateSignatureAndTrust(vault);
// --------------------------------------------------------------------
// 3. Build STS response
// --------------------------------------------------------------------
DkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseDOMBuilder response = factory.createDkncpBootstrapSamlAssertionToEhdsiIdwsXuaEmployeeIdentityTokenResponseDOMBuilder();
response.setEhdsiIdwsXuaEmployeeIdentityToken(ehdsiIdwsXuaEmployeeIdentityToken);
response.setSigningVault(holderOfKeyVault);
response.setRelatesTo("relatesTo");
response.setContext("context");
// Build and sign the final STS response
response.build();
|