É possível proteger serviços da web configurando o conjunto de políticas e ligações de
WS-Security para um token de segurança independente que é um token
Lightweight Third Party Authentication (LTPA) ou um token Username.
Antes de Iniciar
Esta tarefa supõe que se o provedor e o cliente de serviços que estão sendo configurados estão no aplicativo JaxWSServicesSamples.
Consulte a documentação sobre como acessar amostras para saber como obter e instalar esse aplicativo. Especifique a especificação de rastreio a seguir em seu servidor para permitir que você depure quaisquer problemas de configuração futuros que possam ocorrer.
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:
com.ibm.ws.wssecurity.*=all: com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
Se tokens
LTPA forem usados, você deve ativar a segurança do aplicativo nos servidores de aplicativos que são usados para ambos o cliente e o serviço.
Sobre Esta Tarefa
Este tópico descreve como configurar um conjunto de políticas do WS-Security e ligações do provedor para um token Username ou um token LTPA. Por questão de simplificação, este procedimento demonstra como remover o registro de data e hora, a assinatura digital e os atributos de criptografia da política; no entanto, pode ser que você queira incluir esses atributos em sua configuração final.
Para saber mais, consulte a documentação sobre como configurar um conjunto de políticas e ligações para assinatura digital XML assimétrica ou criptografia XML com ligações específicas do aplicativo do cliente e do servidor.
Nesta tarefa, as ligações padrão gerais do provedor são usadas para o aplicativo do provedor consumir os tokens. Se uma configuração de responsável pela chamada for necessária, uma ligação específica do aplicativo será incluída para o provedor.
Procedimento
- Crie o conjunto de políticas customizadas.
- No console administrativo, clique em Serviços > Conjuntos de Políticas > Conjuntos de Políticas de Aplicativos.
- Clique em Novo(a).
- Especifique Nome = OneTokenPolicy.
- Clique em Aplicar.
- Em Políticas, clique em Incluir > WS-Security.
- Edite o conjunto de políticas customizado
- Remova a assinatura digital, a criptografia e o registro de data e hora.
- No console administrativo, clique em Segurança WS > Política Principal.
- Cancelar seleção da proteção de nível de mensagem.
- Clique em Aplicar.
- Inclua o UsernameToken ou o token LTPA.
- Sob Detalhes da Política, clique em Solicitar Políticas de Token.
- Selecione Incluir Tipo de Token.
- Se deseja usar um UsernameToken, selecione UserName.
Se deseja usar um token LTPA, selecione LTPA.
Token
name=myToken.
- Clique OK.
- Configure o cliente para usar o conjunto de políticas OneTokenPolicy.
- No console administrativo, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações do Cliente de Serviço.
- Selecione o recurso do cliente de serviços da Web.
- Clique em Anexar Conjunto de Políticas.
- Selecione OneTokenPolicy .
- Crie uma ligação customizada para o cliente.
- Selecione novamente o recurso de serviços da web.
- Clique em Designar Ligação.
- Clique em Nova Ligação Específica do Aplicativo para criar uma ligação específica do aplicativo
- Especifique o nome da configuração de ligações. Nome:
oneTokenClientBinding
- Clique em Incluir > WS-Security
- Se o painel Ligações de Política de Segurança da Mensagem Principal não for exibido, selecione Segurança WS.
- Edite a ligação customizada para o cliente.
- Clique em Autenticação e proteção
- Edite o gerador de token de identidade para enviar o nome de usuário da identidade.
- Clique em request:myToken.
- Clique em Aplicar.
- Clique em Manipulador de Retorno de Chamada. User
name=(yourUserid) Password=(yourPassword)
Evitar Problemas: Esse é um ID de usuário/senha válido no registro do usuário no sistema do provedor. Se estiver usando tokens LTPA, o ID do usuário/senha deve ser válido nos registro do consumidor e do provedor.
gotcha
- (Opcional) Se estiver configurando um UsernameToken, inclua as propriedades customizadas do
WS-Security a seguir:
*com.ibm.wsspi.wssecurity.token.username.addNonce=true
*com.ibm.wsspi.wssecurity.token.username.addTimestamp=true
Essas propriedades customizadas são incluídas porque são especificadas nas ligações gerais padrão do consumidor de UsernameToken. Se não especificarmos essas propriedades aqui, será necessário remover essas propriedades das ligações padrão gerais do provedor ou criar ligações específicas do aplicativo para o provedor que não inclui essas propriedades.
- Clique OK.
- Clique em Salvar
- Configure o provedor para usar o conjunto de políticas OneTokenPolicy.
- No console administrativo, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de políticas e ligações do provedor de serviços
- Selecione o recurso do provedor de serviços da web (OneTokenPolicy).
- Clique em Anexar Conjunto de Políticas.
- Selecione OneTokenPolicy
Nota: Como nenhuma ligação está conectada ao aplicativo do provedor, as ligações padrão gerais do provedor serão usadas para os consumidores de token.
- (Opcional) Se você deseja criar uma configuração do responsável pela chamada para o provedor, crie ligações customizadas para o provedor.
- Selecione novamente o recurso do provedor de serviços da web.
- Clique em Designar Ligação
- Clique em Nova Ligação Específica do Aplicativo para criar uma ligação específica do aplicativo
- Especifique a Configuração de Ligações name:oneTokenProvBinding
- Clique em Incluir > WS-Security
- Se o Painel de ligações de política de segurança de mensagem principal não for
exibido, selecione WS-Security
- (Opcional) Se a configuração de responsável pela chamada for ser criada, edite as ligações customizadas para o provedor.
- Clique em Responsável pela Chamada > Novo. Nome:
myCaller.
- Se estiver usando um UsernameToken, insira o seguinte:
- Nome local da identidade do responsável pela chamada: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
- Se estiver usando um token LTPA, insira o seguinte:
- Nome local da identidade do responsável pela chamada: LTPAv2
- URI local da identidade do responsável pela chamada: http://www.ibm.com/websphere/appserver/tokentype
- Clique OK.
- Clique em Salvar para salvar suas alterações na configuração.
- Reinicie o provedor do cliente.
- Pare o cliente e o provedor
- Reinicie o cliente e o provedor
- Teste o Serviço.
- Aponte o navegador da web no JaxWSServicesSamples: http://localhost:9080/wssamplesei/demo
Evitar Problemas: Certifique-se de que sejam fornecidos o nome do host e a porta corretos se seu perfil não estiver na mesma máquina ou se a porta não for
9080.
gotcha
- Selecione Eco Síncrono do Tipo de Mensagem
- Certifique-se de que Usar SOAP 1.2 não esteja selecionado
- Insira uma mensagem e clique em Enviar Mensagem.
O aplicativo de amostra deve responder com JAXWS==>Message.
Resultados
O aplicativo de serviços da web JaxWSServicesSamples é configurado para gerar e consumir um UsernameToken ou um token LTPA na mensagem de solicitação.