Visão Geral dos Padrões e Modelos de Programação para Segurança em Nível de Mensagem dos Serviços da Web
Os padrões e perfis de segurança dos serviços da Web descrevem como fornecer segurança e proteção para mensagens SOAP que são trocadas em um ambiente de serviços da Web.
Para serviços da Web seguros, você deve considerar um extenso conjunto de requisitos de segurança, incluindo autenticação, autorização, privacidade, confiança, integridade, confidencialidade, canais de comunicação segura, delegação e auditoria em uma ampla variedade de topologias de aplicativos e negócios. Um dos requisitos chave para o modelo de segurança no ambiente de negócios de hoje é a capacidade de interoperar entre tecnologias de segurança antes incompatíveis nos ambientes heterogêneos. A pilha completa de protocolos e o roteiro de tecnologia do Web Services Security estão descritos em Segurança em um Mundo de Serviços da Web: Uma Arquitetura Proposta e um Roteiro.
Padrões de segurança de serviços da Web
A especificação de Organization for the Advancement of Structured Information Standards (OASIS) Web Services Security (WS-Security) define os principais recursos para proteger a integridade e a confidencialidade de uma mensagem e fornecer mecanismos para associar solicitações relacionadas à segurança com a mensagem. A Segurança de Serviços da Web é um padrão de nível de mensagem baseado em mensagens SOAP seguras por meio de assinatura digital XML, confidencialidade por meio de criptografia XML e propagação de credencial por meio de tokens de segurança. O WebSphere Application Server suporta a Versão 1.1 da especificação Web Services Security, incluindo recursos, como cabeçalho criptografado, configuração de impressão digital e assinatura, perfil de token de nome de usuário e perfil de token X.509. Além disso, o suporte ao cenário de segurança limitado é fornecido para o perfil de token Kerberos Versão 1.1, WS-SecureConversation Versão 1.3, WS-Trust Versão 1.3 e WS-SecurityPolicy Versão 1.2.
A especificação do Web Services Security SOAP Message Security 1.1 descreve um conjunto padrão de extensões do SOAP 1.1 que você pode usar para construir serviços da Web seguros. Esses padrões fornecem proteção à integridade e confidencialidade, que geralmente são implementados com tecnologias de assinatura digital e criptografia. Além disso, a Segurança de serviços da Web fornece um mecanismo de propósito geral para associar tokens de segurança com mensagens. Um exemplo comum do token de segurança é um token do nome do usuário, no qual um nome do usuário e uma senha são incluídos como texto. A Segurança de serviços da Web define como codificar tokens de segurança binários utilizando métodos como certificados X.509. No entanto, os tokens de segurança requeridos não estão definidos na especificação SOAP Message Security 1.1. Em vez disso, os tokens são definidos em perfis separados, como o perfil de token do nome do usuário, o perfil do token X.509 e outros.
É importante observar que, enquanto a Segurança de serviços da Web pode ser usada para fornecer proteção da integridade e confidencialidade em nível de mensagem para pedidos de mensagem SOAP normal de um cliente para um serviço, e respostas de mensagem SOAP normal de um serviço para um cliente, a Segurança de serviços da Web não pode ser usada para proteger mensagens de falha de SOAP.
Compatibilidade entre o WS-Security Draft 13 e o WS-Security padrão Versões 1.0 e 1.1
O padrão WS-Security evoluiu com o passar dos anos de um rascunho para um padrão OASIS. O WebSphere Application Server Versão 5.02 introduziu suporte para o WS-Security Draft 13, e o suporte para o WS-Security 1.0 foi introduzido a partir do WebSphere Application Server Versão 6.0. O WS-Security Versão 1.1 é suportado pelo WebSphere Application Server Versão 6.1 Feature Pack for Web Services, utilizando apenas o tempo de execução do JAX-WS. O tópico Especificação de Segurança de Serviços da Web - uma cronologia fornece mais detalhes sobre a evolução desse suporte.
É importante notar que um cliente WS-Security Draft 13 não é compatível com provedores que utilizam WS-Security Versão 1.0 ou Versão 1.1. Você deve utilizar o cliente Draft 13 para comunicar-se com um provedor de serviços da Web Draft 13. Não é possível utilizar um cliente Draft 13 para comunicar-se com um provedor WS-Security Versão 1.0 ou com um provedor Versão 1.1. Esse problema surge porque o formato da mensagem SOAP para o cabeçalho e o espaço de nomes do WS-Security é diferente entre um aplicativo ativado por WS-Security Draft 13 e um aplicativo ativado por WS-Security Versão 1.0 ou Versão 1.1.
- O Java EE Versão 1.3 é utilizado apenas com o WS-Security Draft 13.
- O Java EE Versão 1.4 e posterior é utilizado com o WS-Security Versão 1.0 (JAX-RPC e JAX-WS), e também com o WS-Security Versão 1.1 (JAX-WS).
O diagrama a seguir ilustra essas considerações sobre compatibilidade:
Para proteger serviços da Web com WebSphere Application Server, você deve especificar várias configurações diferentes. Embora não exista uma sequência específica na qual você deva especificar estas configurações diferentes, algumas configurações fazem referência a outras configurações. Consulte o Considerações de Configuração do Web Services Security.
Devido ao relacionamento entre as diferentes configurações de segurança de Serviços da Web, é recomendado que você especifique as configurações em cada nível da configuração na ordem descrita nas seções a seguir. Você pode escolher configurar a Segurança de serviços da Web para o nível do aplicativo, nível do servidor ou nível de célula, depende de seu ambiente e das necessidades de segurança.
Modelos de Programação de Segurança dos serviços da Web
Tire vantagem do modelo de programação fácil de implantar, o Java™ API for XML-Based Web Services (JAX-WS) para desenvolver novos aplicativos e clientes de serviços da Web. O JAX-WS é um modelo de programação de serviços da Web de primeira geração. Utilizando o JAX-WS, o desenvolvimento de serviços da Web e clientes é simplificado, com maior independência de plataforma para aplicativos Java por meio do uso de proxies dinâmicos e anotações Java. O JAX-WS simplifica o desenvolvimento de aplicativo por meio de suporte de um modelo padrão, baseado em anotação, para desenvolver aplicativos e clientes de serviços da Web. Os aplicativos JAX-WS podem ser protegidos com a Segurança de Serviços da Web de uma das duas maneiras. O aplicativo pode ser protegido utilizando conjuntos de política, ou por meio do uso da WSS API (Web Services Security API). Para proteger os serviços da Web usando o modelo de programação Java API for XML-Based Web Services (JAX-WS), comece com o tópico Protegendo Serviços da Web JAX-WS Usando Segurança de Nível de Mensagem.
A especificação Java™ API for XML-based RPC (JAX-RPC) permite que você desenvolva serviços da Web portáteis e interoperáveis e clientes de serviço da Web. O JAX-RPC 1.1 fornece as APIs principais para desenvolver e implementar serviços da Web em uma plataforma Java e é parte dos Serviços da Web para Plataforma Java, Enterprise Edition (Java EE). O IBM® WebSphere® Application Server suporta os modelos de programação JAX-WS e JAX-RPC. O JAX-WS é o modelo de programação de serviços da Web de primeira geração, estendendo a base fornecida pelo modelo de programação JAX-RPC. Para proteger os serviços da Web usando o modelo de programação Java API for XML-based RPC (JAX-RPC), comece com o tópico Protegendo Serviços da Web JAX-RPC Usando Segurança de Nível de Mensagem.