Os fluxos de mensagens são importados sem que o WS-Security esteja ativado. Qualquer um pode chamar o serviço da web para consumir as mensagens, semelhante ao Monitor TCP/IP com SOAP através de HTTP. Para ativar o WS-Security na forma de criptografia (confidencialidade) e assinatura (integridade), consulte Estendendo a Amostra Address Book.
A ativação do WS-Security é uma tarefa administrativa executada no nível do WebSphere Message Broker. Você não pode configurar a segurança ao desenvolver seus fluxos de mensagens; é necessário configurar as políticas e ligações no broker e associá-las aos fluxos de mensagens em um arquivo broker archive (BAR).
Na amostra de extensão Address Book, o consumidor e o provedor têm os mesmos requisitos de segurança:
Todas essas informações são capturadas na política de segurança usando o WS-Policy. As políticas devem ser interoperáveis entre os provedores WS-Security. A política que você cria é igual à política WS-Security padrão no WebSphere Application Server, que permite que você troque o provedor e o consumidor para o broker com o provedor e o consumidor para o WebSphere Application Server, após ter incluído o WS-Security.
A implementação desta política é capturada na ligação de segurança. Ligações são específicas ao provedor WS-Security e, se você quiser interoperar com o WebSphere Application Server, deverá criar uma ligação do WebSphere Application Server para a política do consumidor e provedor do WebSphere Application Server. A amostra de extensão Address Book mostra como criar a política e as ligações do broker dentro do ambiente de trabalho.
Para capacidade cruzada efetiva entre o consumidor e o provedor, a política de segurança é compartilhada e a mesma criptografia e assinatura de mensagens de saída e mensagens de entrada se aplicam. As ligações do consumidor e do provedor são diferentes porque suas perspectivas são distintas, e diferentes chaves são usadas para criptografia e assinatura. Por exemplo, para o provedor a mensagem de pedido é a mensagem de entrada, mas para o consumidor a mensagem de pedido é a mensagem de saída.
Para entender a amostra, você deve ter um conhecimento básico da criptografia de chave pública; consulte Criptografia de Chave Pública. A amostra utiliza dois certificados de chave pública X.509: uma chave pública e uma chave privada. Se os dados forem criptografados com uma chave, pode ser decriptografado somente com a outra chave. Para criptografar uma mensagem para alguém, você deve usar a chave pública dessas pessoas, somente elas podem decriptografá-la com a chave privada delas. Para assinar uma mensagem você deve criptografá-la com sua chave privada, qualquer pessoa pode decriptografá-la, utilizando sua chave pública. Você pode fornecer sua chave pública para qualquer pessoa com a qual deseja se comunicar. Mantenha sua chave privada em segredo.
Os detalhes de como assinar e criptografar partes específicas da mensagem estão na seção de política de segurança e ligações precedente. O diagrama a seguir mostra que a mensagem SOAP inteira é criptografada e assinada. O diagrama mostra as chaves às quais o consumidor e o provedor possuem acesso em seus keystores, e quais chaves usam para criptografia e assinatura.
O consumidor possui acesso a sua chave pública (Cpub), sua chave privada (Cpriv) e a chave pública do provedor (Ppub). O provedor possui acesso a sua chave privada (Ppriv), sua chave pública (Ppub) e a chave pública do consumidor (Cpub).
O consumidor assina a mensagem com sua chave privada (Cpriv) e criptografa a mensagem com a chave pública do provedor (Ppub). O provedor decriptografa a mensagem com sua própria chave privada (Ppriv) e verifica a assinatura com a chave pública do consumidor (Cpub).
Ao construir a resposta, o provedor assina a mensagem com sua chave privada (Ppriv) e a criptografa com a chave pública do consumidor (Cpub). O consumidor decriptografa a mensagem com sua chave privada (Cpriv) e verifica a assinatura com a chave pública do provedor (Ppub).
Os detalhes sobre qual chave utilizar e a ordem na qual o consumidor e o provedor devem criptografar e decriptografar estão contidos nas ligações de segurança. Você cria duas ligações de segurança nas seções de configuração: uma para o consumidor e outra para o provedor, consulte Configurando a Amostra da Lista de Endereços para Usar o HTTP ou Configurando a Amostra da Lista de Endereços para Usar o Transporte JMS. Use o diagrama anterior para referência.