Antes de iniciar
Neste tutorial, você aprenderá sobre Segurança de Serviços da Web, ou WS-Security. É para desenvolvedores que desejam expor seus próprios serviços em um ambiente que requeira proteção de mensagens para que não sejam violadas ou lidas em trânsito ou em situações em que o remetente deve ser positivamente identificado. O termo "WS-Security" é geralmente usado para fazer referência a um grupo de especificações que manipulam criptografia e assinaturas digitais, permitindo a criação de um aplicativo seguro.
Para acompanhar este tutorial, você deve ter um entendimento básico de SOAP, o que pode ser obtido com a leitura da Parte 1 desta série de tutoriais e, como extensão, você precisa de um entendimento básico de XML. SOAP é agnóstico com relação a linguagem de programação, mas as amostras deste tutorial usam Java™ e o projeto Apache Axis2. Os conceitos, no entanto, se aplicam a qualquer linguagem de programação e ambiente.
Esta série de tutoriais ensina os conceitos básicos de serviços da Web seguindo as explorações do jornal fictício, The Daily Moon, à medida que a equipe usar serviços d Web para criar um sistema de fluxo de trabalho para aumentar a produtividade no meio de muita mudança.
A Parte 1 explicou os conceitos básicos por trás de serviços da Web e mostrou como usar SOAP, a especificação subjacente à maior parte do que está por vir, conectando o departamento de classificados ao Sistema de Gerenciamento de Conteúdo.
A Parte 2 leva as coisas um passo adiante, explicando como usar Web Services Description Language (WSDL) para definir as mensagens produzidas conforme esperado por serviços da Web, permitindo que a equipe crie serviços mais facilmente e os clientes que conectam a eles.
A Parte 3 encontra a equipe com diversos serviços em vigor e deseja localizá-los facilmente. Em resposta, Universal Description, Discovery and Integration (UDDI) fornece um registro pesquisável de serviços disponíveis como uma maneira de divulgar seus próprios serviços a outros.
Agora, na Parte 4, Rudy, editor do The Daily Moon, decidiu que o jornal precisa instituir melhores procedimentos de segurança para serviços da Web que acessam seus sistemas internos.
Na Parte 5, WS-Policy, vamos ver as mudanças que as equipes precisam fazer para acessarem aqueles novos serviços protegidos.
Interoperabilidade será a palavra-chave na Parte 6, já que serviços de diversas implementações diferentes devem ser acessados a partir de um único sistema. A Parte 6 também abordará os requisitos e testes envolvidos na certificação WS-I.
Por fim, a Parte 7 mostrará como usar Business Process Execution Language (WS-BPEL) para criar aplicativos complexos a partir de serviços individuais.
Agora vamos dar uma olhada no que este tutorial aborda em pouco mais de detalhes.
Neste tutorial, você acompanhará à medida que a equipe do jornal The Daily Moon usa as especificações WS-Security para proteger um dos serviços da Web descritos até agora na série.
No curso deste tutorial, você aprenderá:
- O que é WS-Security
- As diferenças entre criptografia simétrica e assimétrica
- As diferenças entre assinaturas e criptografia
- O efeito de segurança em mensagens SOAP
- Como proteger um serviço da Web SOAP usando Axis2
Antes de iniciar, algumas ferramentas serão necessárias.
A maior parte deste tutorial é conceitual, mas para acompanhar o código que cria as mensagens SOAP, será necessário ter o software a seguir disponível e instalado:
Vamos demonstrar a instalação e uso do Apache Geronimo, que também é a base do WebSphere Community Edition da IBM. Também é possível usar outros servidores de aplicativos, como o WebSphere Application Server. É possível fazer download do Apache Geronimo. Para obter informações adicionais sobre como instalar o Geronimo, consulte Parte 1, desta série de tutoriais.
Você irá usar o Apache Axis2, que contém implementações de várias APIs relacionadas a SOAP para tornar sua vida significativamente mais fácil. É possível fazer download do Apache Axis2 a partir de Apache.org. Este tutorial usa a versão 0.94, mas versões posteriores devem funcionar.
Módulo Rampart do Apache Axis2 -- Segurança para o mecanismo de serviços da Web do Axis2 é fornecida por meio do módulo Rampart, que não está incluído na instalação padrão. Faça download desse módulo a partir de Apache Download Mirrors.
Apache WSS4J -- Apesar de o próprio Axis usar o Rampart, em algum ponto será necessário fazer referência à direção de classes WSS4J. Faça download de pacote WSS4J.
Java 2 Standard Edition versão 1.4.2 ou superior -- Todas essas ferramentas são baseadas em Java, assim como os serviços e clientes que você criará neste tutorial. Faça download de J2SE SDK.
TCPMon (opcional) -- Sempre é mais fácil entender o que está acontecendo em um aplicativo de serviço da Web quando é realmente possível ver as mensagens. Faça download de TCP Monitor para que possa ver as mensagens vindo e indo para o serviço da Web.
GnuPG (opcional) -- Toda a assinatura de mensagem que estaremos realizando é coberta pelo Axis2 e pelo próprio Java, mas se quiser brincar com assinatura de documentos individuais, como iremos demonstrar resumidamente, faça download de GnuPG.
Também serão necessários um navegador da Web e um editor de texto