SPI (Service Programming Interfaces)
A interface de programação de serviço do Web Services Security (WSS SPI) fornece interfaces de programação para proteger o Web Services Security.
A especificação do Web Services Security fornece uma estrutura flexível para construir serviços da Web seguros para implementar a integridade e a confidencialidade do conteúdo da mensagem. A especificação não define formatos de token específicos, mas associa documentos de perfil separados que definem vários formatos e semânticas de token de segurança para uso desses tokens. O modelo de programação de serviço do Web Services Security suporta a estrutura flexível fornecendo pontos de extensão para integrar aos novos formatos do token e a métodos para obter as chaves necessárias para a proteção da mensagem. O Web Services Security usa esse modelo de programação para implementar suporte para o perfil de token X.509 padrão, o perfil de token Nome do Usuário e os perfis de token do Kerberos. O modelo de programação também é utilizado para implementar suporte para o token de segurança LTPA e para novos tipos de token de segurança.
A geração do token de tempo de execução do Web Service Security e o token que consome a Service Programming Interfaces (SPI) foram reprojetados de modo que a mesma interface do token de segurança e a Implementação do Módulo de Login do JAAS possam ser usadas para a WSS API e a SPI. A WSS SPI para o provedor de serviços estende os tipos de token de segurança e fornece chaves e derivação de chaves para assinatura, verificação de assinatura, criptografia e decriptografia.
O modelo de programação de serviço do Web Services Security fornece mecanismos para processar tokens de segurança customizados, para usar token customizado na assinatura e na criptografia, e para recuperar as chaves de criptografia e de assinatura. As interfaces de programação de serviço do Web Services Security para o tempo de execução do JAX-RPC e para o tempo de execução do JAX-WS são semelhantes, mas não idênticas.
Tempo de execução do JAX-RPC
- Gerador de Token, Localizador de Chaves e Manipulador de Retorno de Chamada
- A classe TokenGenerator é responsável pela formatação do token de segurança para o elemento XML. Essa classe chama a classe CallbackHandler que é especificada no objeto TokenGeneratorConfig, que obtém os dados de entrada do token de segurança e depois armazena o token de segurança resultante nas credenciais privadas do objeto Subject.
- Consumidor de Token, Localizador de Chaves e Módulo de Login do JAAS
- A classe KeyLocator é responsável por obter a chave necessária para assinatura e criptografia dos elementos de mensagem SOAP de um armazenamento de chaves que é especificado pela configuração KeyStoreConfig e KeyLocatorConfig. A classe TokenConsumer extrai os dados do token da representação do token de segurança XML e os armazena no JAAS Subject utilizando um Módulo de Login do JAAS. A classe KeyLocator especificada é chamada para localizar a chave requerida para verificar a assinatura digital e a decriptografia dos elementos da mensagem SOAP.
Tempo de execução do JAX-WS
As interfaces de programação de plug-in para o tempo de execução do JAX-WS são baseadas no modelo de programação JAAS para processamento de mensagens SOAP de entrada e saída. JAAS LoginModule e CallbackHandler são responsáveis por processar os tokens de segurança nas mensagens SOAP. O Módulo de Login e o Manipulador de Retorno de Chamada recuperam e geram tokens, além de armazenar os objetos SecurityToken no tempo de execução. Eles substituem a funcionalidade das interfaces TokenGenerator, TokenConsumer e KeyLocator.
Devido às diferenças nos modelos de programação, qualquer WebSphere Application Server ou implementação customizada da SPI a partir do tempo de execução do Web Services Security Versão 6.1 não é suportada para execução no tempo de execução do Web Services Security com a Versão 6.1 do Feature Pack for Web Services, ou da Versão 7.0 e posterior do tempo de execução do Web Services Security. Entretanto, o tempo de execução do Web Services Security Versão 6.1 é suportado simultaneamente com a Versão 6.1 do Feature Pack for Web Services, significando que as implementações da Versão 6.1 SPI ainda são suportadas por meio do tempo de execução original. Antes de usar o novo tempo de execução do Web Services Security, uma migração de código é necessária para reprogramar as SPIs baseadas em DOM da Versão 6.1 para as SPIs baseadas em AXIOM no Feature Pack for Web Services, antes de a SPI poder ser usada.