Criando um Token holder-of-key SAML Utilizando a API
O token holder-of-key SAML estende a interface pública do token de segurança no WebSphere Application Server e pode ser utilizado como um token de proteção. O WebSphere Application Server fornece uma API de biblioteca de SAML para criação de token SAML holder-of-key.
Sobre Esta Tarefa
A criação do token SAML requer três parâmetros:
- com.ibm.wsspi.wssecurity.saml.config.RequesterConfig
- com.ibm.wsspi.wssecurity.saml.config.ProviderConfig
- com.ibm.wsspi.wssecurity.saml.config.CredentialConfig
Procedimento
Exemplo
Utilize este código de amostra para criar um token holder-of-key SAML versão 1.1 utilizando uma chave secreta (chave simétrica) do subject.
import com.ibm.wsspi.wssecurity.saml.config.RequesterConfig;
import com.ibm.wsspi.wssecurity.saml.config.ProviderConfig;
import com.ibm.wsspi.wssecurity.saml.config.CredentialConfoig ;
import com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance(SAMLTokenFactory.WssSamlV11Token11);
RequesterConfig reqData = samlFactory.newSymmetricHolderOfKeyTokenGenerateConfig();
//Mapeie "AppliesTo" para o alias de chave, assim a biblioteca saberá como criptografar a Chave Simétrica
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(IsserUri);
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Utilize este código de amostra para criar um token holder-of-key SAML versão 2.0 utilizando uma chave pública do subject:
//Expressão do usuário sobre como SAML deve ser criado, o padrão é fornecido
RequesterConfig reqData = samlFactory.newAsymmetricHolderOfKeyTokenGenerateConfig();
//Escolha uma chave pública para ser incluída no SAML
reqData.setKeyAliasForRequester("SOAPInitiator");
//Obtenha o keystore do emissor para poder assinar ou criptografar a asserção, nome do emissor
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig("any_issuer");
//Obtenha o JAAS Subject para que o factory possa preencher o principal e o atributo para SAML
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Utilize este código de amostra para criar um token holder-of-key SAML versão 2.0 utilizando uma chave secreta (chave simétrica):
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance (SAMLTokenFactory.WssSamlV20Token11);
RequesterConfig reqData = samlFactory. newSymmetricHolderOfKeyTokenGenerateConfig ();
//Mapeie "AppliesTo" para o alias de chave, assim a biblioteca saberá como criptografar a Chave Simétrica
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(null);
CredentialConfig cred = samlFactory.newCredentialConfig ();
cred.setRequesterNameID("any_name");
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);