Protegendo serviços Web usando os perfis SAML ou UserNameToken
Contribuição e manutenção de
Novembro de 2007[Número da revisão: V1-3]
Esta publicação se aplica à versão completa do NetBeans IDE 6.0
Este tutorial mostra como você pode ativar a autenticação baseada em SAML e em UserNameToken entre um cliente de serviços Web e um provedor de serviços Web, por meio do gerenciador de acesso interno, junto com o suporte integrado para o padrão WS-Security no cliente de serviços Web do servidor da aplicação e nos contêineres do lado do servidor.
O NetBeans 6.0 vem com todos os tempos de execução necessários para permitir que você comece a desenvolver clientes e provedores de serviços Web seguros e ativados por identidade. Esses tempos de execução incluem:
Java Application Server SDK Update 3 Beta
Sun Java System Access Manager 7.1 e Policy Agent 2.2 for Web Services
Antes de prosseguir, revise os requisitos nesta seção.
Pré-requisitos
Este tutorial presume que você tenha algum conhecimento básico ou experiência de programação com as tecnologias Java e os Serviços Web.
Software necessário para este tutorial
Antes de começar, você deve instalar o seguinte software no seu computador:
Execute o instalador do Java SDK, especificando um diretório de instalação da sua escolha e aceitando as opções padrão.
Escolha complementos que incluem o gerenciador de acesso Sun Java System.
Continue a executar o instalador, quando ele estiver concluído, inicie o servidor e selecione Terminar.
Inicie o IDE.
Na aba Serviços, selecione o nó Servidores. Clique com o botão direito do mouse no nó Servidores e escolha Adicionar servidor no menu pop-up. A caixa de diálogo Adicionar instância do servidor é aberta.
Clique em Próximo. A página Local da pasta da plataforma é aberta.
No campo Localização da plataforma, use o botão Explorar para navegar e selecionar o diretório que contém o Java Application Platform SDK que você acabou de instalar.
Clique em Terminar.
O gerenciador de acesso Sun Java System aparece como um nó na aba Serviços no servidor da aplicação que você acabou de instalar. Você deve iniciar o Servidor da aplicação para começar a trabalhar com o Gerenciador de acesso Sun Java System.
Verificando a configuração da instalação do gerenciador de acesso
Na janela Serviços, expanda o nó Gerenciadores de acesso Sun Java System.
Em seguida, você é redirecionado para a página Logon, que é exibida imediatamente em logons sucessivos. Você pode fazer logon no gerenciador de acesso Sun Java System. A página Logon se abre, indicando que o servidor do gerenciador de acesso está em execução.
Você precisa configurar o Gerenciador de acesso para que seja executado corretamente. Ele é configurado por padrão quando você inicia pela primeira vez o Servidor Glassfish obtido a partir do SDK, mas é possível reconfigurá-lo mais tarde, se necessário. Para obter mais informações, verifique o arquivo [your_SDKGlassfish_location]/addons/README.html .
Na janela Tempo de execução, expanda o nó Servidores, clique com o botão direito do mouse no nó Sun Java System Application Server 9 e escolha Iniciar no menu pop-up.
Espere até que a mensagem seguinte apareça na janela Saída: Inicialização do servidor da aplicação concluída.
Quando o servidor está em execução, o IDE exibe um símbolo de seta verde no nó Servidor da aplicação Sun Java System 9. Observação: se a opção Iniciar não estiver disponível, seu servidor já está em execução.
Protegendo serviços Web: usando o mecanismo de segurança SAML-HolderOfKey
Neste cenário, estamos usando o perfil de segurança SAML-HolderOfKey, sem resposta assinada, e o armazenamento de chave padrão. Para fazê-lo, primeiro iremos editar o perfil de símbolo do gerenciador de acesso e, em seguida, configurar o provedor e o cliente de serviços Web.
Para editar o perfil SAML-HolderOfKey:
Na janela Tempo de execução, expanda o nó Gerenciadores de acesso Sun Java System, em seguida, expanda os nós Instância padrão e Perfis.
Selecione o nó SAML-HolderOfKey
Clique com o botão direito do mouse e escolha Editar.
A caixa de diálogo Editar perfil SAML-HolderOfKey é aberta.
Desmarque a caixa de verificação Assinar resposta.
Em Configurações de certificado existentes, deixe marcada a caixa de verificação Usar armazenamento de chaves padrão.
Clique em OK.
Para configurar o provedor de serviços Web:
Na janela Projetos, expanda o nó do projeto StockQuoteService e o nó Serviços Web.
Encontre o nó Serviços Web, clique com o botão direito do mouse no nó StockService e selecione Editar atributos do serviço Web no menu pop-up. A caixa de diálogo Configuração de segurança do cliente de serviços Web é aberta.
Marque a caixa de verificação Ativar segurança de nível de mensagem.
Em Mecanismo de segurança, na lista suspensa Solicitar, selecione SAML-HolderOfKey.
Clique em OK .
Para configurar o cliente de serviços Web:
Na janela Projetos, expanda o nó StockQuoteClient e o nó Referências de serviço Web.
No nó Referência de serviço Web, clique com o botão direito do mouse no nó StockService e escolha Editar atributos do serviço Web no menu pop-up.
A caixa de diálogo Configuração de segurança do cliente de serviços Web é aberta.
Marque a caixa de verificação Ativar segurança de nível de mensagem.
Em Mecanismo de segurança, na lista suspensa Solicitar, selecione SAML-HolderOfKey.
Configurações de certificado existentes. Confirme se a caixa de verificação Usar armazenamento de chaves padrão está selecionada.
Protegendo os serviços Web: usando um mecanismo de segurança UserNameToken
Neste cenário, estamos usando o perfil de segurança UserNameToken, com resposta assinada, e o armazenamento de chave padrão. Para fazê-lo, primeiro iremos editar o perfil de token do gerenciador de acesso e, em seguida, configurar o provedor e o cliente do serviço Web.
Para editar o perfil UserNameToken:
Na janela Tempo de execução, expanda o nó Gerenciadores de acesso Sun Java System, em seguida, expanda os nós Instância padrão e Perfis.
Selecione o nó UserNameToken, clique com o botão direito do mouse e escolha Editar.
A caixa de diálogo Editar perfil UserNameToken é aberta.
Encontre Configurações de certificado existentes e confirme se a caixa de verificação Usar armazenamento de chaves padrão está selecionada.
Informações do perfil de token do nome de usuário. Clique no botão Adicionar para adicionar um registro UserNameToken do cliente do serviço Web.
A caixa de diálogo Adicionar usuário é aberta.
No campo Nome de usuário, digite sherry, no campo Senha, digite mypw e clique em OK.
Clique em OK para fechar a caixa de diálogo Editar perfil UserNameToken.
Para configurar o provedor de serviços Web:
Na janela Projetos, expanda o nó StockQuoteService e o nó Serviços Web.
Encontre o nó Serviços Web. Clique com o botão direito do mouse no nó stockservice e escolha Editar atributos de serviço Web no menu pop-up.
A caixa de diálogo Configuração de segurança do provedor de serviços Web é aberta.
Marque a caixa de verificação Ativar segurança de nível de mensagem.
Em Mecanismo de segurança, na lista suspensa Solicitar, selecione UserNameToken.
Clique em OK.
Para configurar o cliente de serviços Web:
Na janela Projetos, expanda o nó StockClient e o nó Referências de serviços Web.
Encontre o nó Referências de serviço Web. Clique com o botão direito do mouse no nó Stock service e escolha Editar atributos do serviço Web no menu pop-up.
A caixa de diálogo Configuração de segurança do cliente de serviços Web é aberta.
Marque a caixa de verificação Ativar segurança de nível de mensagem.
Em Mecanismo de segurança, na lista suspensa Solicitar, selecione UserNameToken.
No campo Nome de usuário, digite sherry e no campo Senha, digite mypw.
Marque a caixa de verificação Verificar resposta.
Encontre Configurações de certificado existentes e confirme se a caixa de verificação Usar armazenamento de chaves padrão está selecionada.
Na janela Projetos, clique com o botão direito do mouse no nó do projeto
StockQuoteService e escolha Desimplantar e implantar projeto.
O IDE realiza os seguintes procedimentos:
Inicia o servidor da aplicação, caso ele ainda não tenha sido iniciado.
Constrói o projeto
StockQuoteService. Você pode ver os resultados da construção na janela Saída.
Implanta server.war no servidor da aplicação.
Na janela Projetos, clique com o botão direito do mouse no nó do projeto StockQuoteClient e escolha Executar projeto.
O IDE realiza os seguintes procedimentos:
Constrói o projeto StockQuoteClient. Você pode ver os resultados da construção na janela Saída.
Implanta client.war no servidor da aplicação.
Abre a aplicação no navegador.
Confirme se o campo URL sempre exibe: http://localhost:8080/stockquoteclient/
Clique em Enviar.
Você pode clicar na parte "Visualizar mensagens SOAP" da exibição para ver as mensagens SOAP associadas a esta solicitação.
Na janela Projetos, clique com o botão direito do mouse no nó do projeto StockQuoteClient e escolha Executar projeto no menu pop-up.
Abra o arquivo de log do servidor da aplicação (server.log) no seguinte diretório: diretório-de-instalação-do-servidor-da-aplicação\domains\domain1\logs.
Caso você tenha aceito os valores padrão durante a instalação, este seria o diretório C:\Sun\AppServer\domains\domain1\logs.
Observe as alterações no arquivo de log.
O arquivo de log é editado para mostrar que os módulos estão usando os métodos definidos nos painéis de configuração.
As amostras das seções do arquivo de log modificado estão disponíveis nos links abaixo.
Informações de configuração do servidor da aplicação não instalado na porta 8080
Se a instalação do servidor da aplicação Sun Java System foi feita em uma porta diferente da 8080, você deve realizar as etapas de configuração adicionais mostradas abaixo:
Na janela Projetos, expanda StockQuoteClient > Páginas da Web > WEB-INF e wsdl, e abra o arquivo stock.wsdl no editor.
Clique no botão Fonte para alternar para a exibição Fonte do arquivo.
Role para o fim do arquivo e localize a linha seguinte:
<soap:address location="http://localhost:8080/stockservice/stockservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/>
Substitua o valor 8080 pelo número da porta onde o servidor da aplicação está instalado.
Alterando o nível de segurança no servidor da aplicação
Na janela Tempo de execução, clique com o botão direito do mouse no nó Servidor da aplicação Sun Java System 9 e escolha Exibir console de administração.
Digite admin como o nome de usuário e adminadmin como a senha.
No quadro de navegação esquerdo, clique no link do servidor da aplicação.
No quadro direito, clique na Registro e na Níveis de registro.
Role para o fim da página e defina a Segurança como ÓTIMA.
Para obter respostas para quaisquer outras perguntas que você tenha sobre a proteção dos serviços Web por meio do NetBeans 6.0, consulte NetBeansUserFAQ no NetBeans wiki.
Neste tutorial, aprendemos como ativar a autenticação baseada em SAML e baseada em UserNameToken entre um cliente de serviço Web e um provedor de serviço Web. Para fazer isso, nós
Para saber mais sobre o Gerenciamento do Identity, consulte os tópicos de Ajuda apropriados no NetBeans IDE.
Para enviar comentários e sugestões, obter suporte e manter-se informado sobre as alterações mais recentes nos recursos de desenvolvimento do NetBeans IDE , junte-se à lista de usuários em
.