Configurando os Tokens de Segurança do Consumidor Utilizando a WSS API
É possível proteger as mensagens SOAP, sem usar os conjuntos de política, utilizando as Web Services Security APIs. Para configurar o token no lado do consumidor, utilize as WSS APIs (Web Services Security APIs). Os tokens de segurança do consumidor são partes do pacote da interface com.ibm.websphere.wssecurity.wssapi.token.
Antes de Iniciar
A estrutura de token que pode ser conectado no WebSphere Application Server foi reprojetada, de forma que a mesma estrutura da API WSS possa ser reutilizada. A mesma implementação da criação e da validação do token de segurança pode ser utilizada para o tempo de execução da Segurança de Serviços da Web e para o código do aplicativo da API WSS. A estrutura reprojetada também simplifica o modelo de programação SPI e facilitará a inclusão de tipos de token de segurança.
É possível utilizar a WSS API ou é possível configurar os tokens, utilizando o console administrativo. Para configurar os tokens, é necessário ter concluído as seguintes tarefas de token: configure os tokens do gerador, conforme necessário.
Sobre Esta Tarefa
No lado do gerador, o JAAS CallbackHandler e JAAS LoginModule são responsáveis por criar o token de segurança. O token é criado utilizando o JAAS LoginModule e utilizando o JAAS CallbackHandler para transmitir os dados de autenticação. Depois, o JAAS LoginModule cria o objeto securityToken, como o UsernameToken, e o passa para o tempo de execução da Segurança de Serviços da Web.
No lado do consumidor, o formato XML é transmitido ao JAAS LoginModule para validação ou autenticação. Depois, o JAAS CallbackHandler é usado para passar dados de autenticação do tempo de execução da Segurança de Serviços da Web para o LoginModule. Após a autenticação do token e da criação de um objeto de token de segurança, o token é passado para o tempo de execução da Segurança de Serviços da Web.
Ao utilizar a WSS API para validação de token do consumidor, ocorrem determinados comportamentos padrão. A maneira mais simples de utilizar a WSS API é utilizar o módulo de login do JAAS padrão e o manipulador de retorno de chamada. O exemplo utiliza o padrão; portanto, o exemplo não especifica o nome do módulo de login do JAAS.
A maneira mais simples de utilizar a WSS API é utilizar o comportamento padrão (consulte o código de exemplo). A WSS API fornece padrões para o tipo de token, o valor do token e o nome de configuração JAAS. Os comportamentos de token padrão incluem:
Decisões de Token do Consumidor | Comportamento Padrão |
---|---|
Qual tipo de token utilizar | Especifica o tipo de token a ser utilizado para assinar a validar as mensagens. O token X.509 é o tipo de token padrão. O WebSphere Application Server fornece os seguintes tipos de token de consumidor pré-configurados:
Também é possível criar tipos de token customizados, conforme necessário. |
Qual nome de configuração de login do JAAS especificar | O nome de configuração de login do JAAS especifica qual nome de configuração de login do JAAS utilizar. |
Qual tipo de configuração utilizar | O tipo de configuração do módulo de login do JAAS. Apenas os tipos de configuração do consumidor pré-configurado podem ser utilizados para os tipos de token do consumidor. |
A classe SecurityToken (com.ibm.websphere.wssecurity.wssapi.token.SecurityToken) é a classe de token genérica e representa o token de segurança que possui métodos para obter a identidade, o formato XML e as chaves criptográficas. Utilizando a classe SecurityToken, é possível aplicar a assinatura e a criptografia para a mensagem SOAP. No entanto, para aplicar ambos, é necessário ter dois objetos SecurityToken, um para assinatura e um para criptografia, respectivamente.
Os seguintes tipos de token são subclasses da classe do token de segurança genérico:
Tipo de Token | Nome de configuração de login do JAAS |
---|---|
Token de Contexto de Segurança | system.wss.consume.sct |
Token de chave derivado | system.wss.consume.dkt |
Os seguintes tipos de token são subclasses da classe do token de segurança binário:
Tipo de Token | Nome de configuração de login do JAAS |
---|---|
Token X.509 | system.wss.consume.x509 |
Token do Caminho X.509 PKI | system.wss.consume.pkiPath |
Token X.509 PKCS7 | system.wss.consume.pkcs7 |
- Para cada nome de configuração do consumidor do token de login do JAAS, existe um respectivo nome de configuração do gerador de token. Por exemplo, para o X509Token, o respectivo nome de configuração do gerador de token é system.wss.generate.x509.
- Os tokens de propagação LTPA e LTPA estão disponíveis apenas para um solicitante que estiver sendo executado como um cliente baseado em servidor. O LTPA e os tokens de propagação LTPA não são suportados para o aplicativo cliente Java™ SE 6 ou Java EE.
Para validar o X509Token para a mensagem SOAP no lado do consumidor, o elemento <X509Token> deve estar no elemento <wsse:Security>.
Procedimento
Resultados
Exemplo
O seguinte código de amostra fornece o código de exemplo WSS API para a decriptografia utilizando o módulo de login do JAAS padrão e o manipulador de retorno de chamada:
// Obter o contexto da mensagem
Object msgcontext = getMessageContext();
// Gerar a instância do WSSFactory (etapa: a)
WSSFactory factory = WSSFactory.getInstance();
// Gerar a instância do WSSConsumingContext (etapa: b)
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Gerar o manipulador de retorno de chamada (etapa: c)
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Gerar a instância do WSSDecryption (etapa: d)
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Incluir WSSDecryption em WSSConsumingContext (etapa: e)
concont.add(dec);
// Validar o cabeçalho do WS-Security (etapa: f)
concont.process(msgcontext);
O que Fazer Depois
Para cada tipo de token, configure o token utilizando as WSS APIs ou utilizando o console administrativo. Em seguida, especifique tokens de gerador semelhantes, se isso não foi feito.
Se os tokens do gerador e do consumidor estiverem configurados, continue protegendo as mensagens SOAP no consumidor de resposta utilizando as WSS APIs ou configure os tokens utilizando o console administrativo.
Se os tokens do gerador e do consumidor estiverem configurados, continue protegendo as mensagens SOAP, verificando a assinatura ou decriptografando a mensagem, conforme necessário. É possível usar as WSS APIs ou o console administrativo para proteger as mensagens SOAP.