Pedidos WS-MetadataExchange
É possível usar a solicitação GetMetadata do Web Services Metadata Exchange (WS-MetadataExchange) para trocar o Web Services Description Language (WSDL) que está anotado pelas informações do WS-Policy. Um provedor de serviços pode utilizar um pedido WS-MetadataExchange para compartilhar suas políticas, enquanto um cliente de serviço pode utilizar um pedido WS-MetadataExchange para aplicar as políticas de um provedor. Você pode proteger os pedidos WS-MetadataExchange utilizando a segurança de nível de transporte ou de nível de mensagem.
A especificação WS-MetadataExchange define um mecanismo para recuperar metadados de um terminal. O WebSphere Application Server suporta o uso do pedido WS-MetadataExchange 1.1 GetMetadata para retornar metadados em uma resposta. Um provedor de serviços pode utilizar esse mecanismo para tornar disponível o WSDL que é anotado com as informações de política WS-Policy, isto é, o provedor de serviços pode compartilhar suas políticas. Um cliente de serviços pode utilizar esse mecanismo para obter o WSDL que é anotado com as informações de política WS-Policy de um provedor de serviços e, em seguida, aplicar essas políticas. A configuração da política deve estar no formato WS-PolicyAttachments no WSDL do provedor de serviços.
É possível usar uma solicitação WS-MetadataExchange como uma alternativa para usar uma solicitação GET HTTP.
Por padrão, um provedor de serviços ou um cliente de serviços não utiliza WS-MetadataExchange para compartilhar ou obter informações de política WS-Policy. Você deve configurar o provedor de serviços para compartilhar suas políticas, ou configurar o cliente de serviços para aplicar as políticas de um provedor de serviços, bem como especificar que um pedido WS-MetadataExchange é utilizado para compartilhar ou obter a configuração de política. As informações de política WS-Policy podem ser compartilhadas ou obtidas no nível do aplicativo ou do serviço. É possível configurar o provedor de serviços ou o cliente de serviço usando o console administrativo ou usando comandos wsadmin.
Os desenvolvedores de aplicativos podem configurar o provedor ou o cliente de serviços utilizando ferramentas Rational Application Developer quando um serviço da Web é gerado. Para obter informações adicionais, consulte a documentação do Rational Application Developer.
Quando um provedor de serviços está configurado para compartilhar suas políticas utilizando WS-MetadataExchange, o serviço suporta os pedidos WS-MetadataExchange GetMetadata de entrada que estão limitados ao dialeto WSDL. Quando o serviço recebe tal pedido, o WSDL do serviço é retornado em seqüência por meio de uma resposta WS-MetadataExchange correspondente. O WSDL do serviço contém anotações WS-PolicyAttachments que representam a configuração de política atual. A configuração de política está no formato WS-PolicyAttachments no WSDL para que fique então disponível para outros clientes, registros de serviço ou serviços que suportem a especificação WS-Policy (Política de Serviços da Web) e o pedido WS-MetadataExchange.
Quando um cliente de serviço está configurado para utilizar o WS-MetadataExchange para obter a política de um provedor de serviços, o cliente de serviços envia um pedido WS-MetadataExchange GetMetadata que especifica o dialeto WSDL sempre que ele precisa para obter ou atualizar a política do provedor.
WS-Security-MetadataExchange
Você deve garantir que o pedido GetMetadata esteja protegido para que haja autenticação, autorização, integridade e sigilo efetivos. A autenticação de ponta a ponta é importante especialmente para a troca de metadados de segurança (SecurityPolicy), porque se uma parte não autorizada puder acessar essas informações, as credenciais de segurança poderão ser enviadas a terminais não confiáveis.
O pedido GetMetadata é destinado à mesma porta do terminal de aplicativo, de modo que se o aplicativo utilizar a segurança de nível de transporte, o pedido GetMetadata também será destinado à porta segura e, por padrão, utilizará a mesma configuração de segurança de nível de transporte do aplicativo.
Além disso, você pode aplicar a segurança de nível de mensagem (WS-Security) à troca de metadados. Convém aplicar a segurança de nível de mensagem se a de nível de transporte não estiver disponível no terminal de aplicativo ou não for adequada aos seus requisitos. Uma vantagem da segurança de nível de mensagem é que ela oferece segurança de ponta a ponta, incorporando os recursos de segurança no cabeçalho da mensagem SOAP.
Para fornecer segurança de nível de mensagem, conecte os conjuntos de política do sistema e as ligações gerais (nomeadas) ao terminal quando configurar o provedor ou o cliente de serviço para troca de configurações de política.
Conjuntos de política do sistema são utilizados para mensagens do sistema que não são relacionadas a negócios, enquanto conjuntos de política do aplicativo especificam asserções de política para mensagens relacionadas a negócios. Por exemplo, os conjuntos de política do sistema são utilizados para mensagens que aplicam qualidades de serviço (QoS), o que inclui as mensagens definidas no protocolo WS-MetadataExchange. Para fornecer segurança de nível de mensagem para um pedido GetMetadata, você deve conectar um conjunto de política do sistema que contenha apenas as políticas Web Services Security (WS-Security) ou Web Services Addressing (WS-Addressing). Você pode especificar ligações gerais com escopo no domínio global ou no domínio de segurança do serviço.
Ao aplicar a segurança de nível de mensagem, qualquer política de transporte do aplicativo sempre será utilizada.