FeaturesPluginsDocs & SupportCommunityPartners

Protegendo serviços da Web usando os perfis SAML ou UserNameToken

O NetBeans Enterprise Pack 5.5 vem com todos os tempos de execução necessários para permitir que você comece a desenvolver clientes e provedores de serviços da Web seguros e ativados por identidade. Esses tempos de execução incluem:

  • Sun Java System Application Server Platform Edition 9, atualização 1
  • Sun Java System Access Manager 7.1 e Policy Agent 2.2 for Web Services

Este tutorial mostra como você pode ativar a autenticação baseada em SAML e em UserNameToken entre um cliente de serviços da Web e um provedor de serviços da Web, por meio do gerenciador de acesso interno, junto com o suporte integrado para o padrão WS-Security no cliente de serviços da Web do servidor de aplicativos e nos recipientes do lado do servidor.

Pré-requisitos

Este tutorial presume que você possui algum conhecimento básico ou experiência de programação na linguagem e na plataforma Java e no NetBeans IDE.

Requisitos do sistema

Estes tutoriais presumem que o seu sistema atende aos requisitos especificados no tópico Requisitos do sistema das Notas de versão do NetBeans Enterprise Pack 5.5.

Software necessário para o tutorial

Antes de começar, você deve instalar o seguinte software em seu computador:

  • NetBeans IDE 5.5 com NetBeans Enterprise Pack 5.5 (download)
  • Para poder completar as etapas de implantação deste tutorial, você deve ter o Sun Java System Application Server Platform Edition 9 atualização 1. Esse servidor de aplicativos é oferecido com o download do NetBeans Enterprise Pack 5.5.

Conteúdo

superior


Configurando o ambiente do tutorial

  1. Inicie o IDE.
  2. Para verificar se o servidor de aplicativos Sun Java System está configurado no IDE, clique na guia Tempo de execução e expanda o nó Servidores.
  3. Se o nó Servidores não contiver um nó Servidor de aplicativos Sun Java System 9, siga as etapas de Adicionando um servidor de aplicativos.
  4. 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 de aplicativos concluída.
    Quando o servidor está em execução, o IDE exibe um símbolo de seta verde no nó Servidor de aplicativos Sun Java System 9.
    Observação: Se a opção Iniciar não estiver disponível, seu servidor já está em execução.

superior


Criando os projetos do tutorial

Existem dois projetos do tutorial: StockServer e StockClient.

Para criar o projeto StockServer:

  1. No menu principal do IDE, escolha Arquivo > Novo projeto.
  2. Na lista Categorias, expanda o nó Amostras e selecione o nó Identity Blueprints.
  3. Na lista Projetos, selecione Stock Service.
  4. Clique em Próximo.
  5. Aceite o Nome de projeto padrão (StockServer) e, opcionalmente, altere o Local do projeto.
  6. Clique em Finalizar.

Para criar o projeto StockClient:

  1. No menu principal do IDE, escolha Arquivo > Novo projeto.
  2. Na lista Categorias, expanda o nó Amostras e selecione o nó Identity Blueprints.
  3. Na lista Projetos, selecione Stock Client.
  4. Clique em Próximo.
  5. Aceite os valores padrão do Nome de projeto (StockClient) e o Local do projeto.
  6. Clique em Finalizar.
    A janela Projetos agora contém um nó do projeto StockClient.

superior


Protegendo os serviços da 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 da Web.

Para editar o perfil SAML-HolderOfKey:

  1. 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.
  2. 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.
  3. Desmarque a caixa de seleção Assinar resposta.
  4. Em Configurações de certificado existentes, deixe marcada a caixa de seleção Usar armazenamento de chaves padrão.
  5. Clique em OK.

Para configurar o provedor de serviços da Web:

  1. Na janela Projetos, expanda o nó StockServer e o nó Serviços da Web.
  2. No nó Serviços da Web, clique com o botão direito do mouse no nó stockservice e escolha Editar atributos do serviço da Web no menu pop-up.
    A caixa de diálogo Configuração de segurança do provedor de serviços da Web é aberta.
  3. Marque a caixa de seleção Ativar segurança de nível de mensagem.
  4. Em Mecanismos de segurança, na lista suspensa Solicitar, selecione SAML-HolderOfKey.

  5. Clique em OK.

Para configurar o cliente de serviços da Web:

  1. Na janela Projetos, expanda o nó StockClient e o nó Referências de serviços da Web.
  2. No nó Referências de serviços da Web, clique com o botão direito do mouse no nó StockService e escolha Editar atributos do serviço da Web no menu pop-up.
    A caixa de diálogo Configuração de segurança do cliente de serviços da Web é aberta.
  3. Marque a caixa de seleção Ativar segurança de nível de mensagem.
  4. Em Mecanismo de segurança, na lista suspensa Solicitar, selecione SAML-HolderOfKey.
  5. Em Configurações de certificado existentes, deixe marcada a caixa de seleção Usar armazenamento de chaves padrão.

  6. Clique em OK.

Você agora pode implantar e executar a amostra, seguindo as instruções existentes em Implantando e executando o projeto.

superior


Protegendo os serviços da Web: Usando o 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 símbolo do gerenciador de acesso e, em seguida, configurar o provedor e o cliente de serviços da Web.

Para editar o perfil UserNameToken:

  1. 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.
  2. Selecione o nó UserNameToken, clique com o botão direito do mouse e escolha Editar.
    A caixa de diálogo Editar perfil UserNameToken é aberta.
  3. Em Configurações de certificado existentes, deixe marcada a caixa de seleção Usar armazenamento de chaves padrão.
  4. Em Informações do perfil de símbolo do nome de usuário, clique no botão Adicionar para adicionar um registro UserNameToken do cliente de serviços da Web.
    A caixa de diálogo Adicionar usuário é aberta.
  5. No campo Nome de usuário, digite sherry, no campo Senha, digite mypw e clique em OK.

  6. Clique em OK para fechar a caixa de diálogo Editar perfil UserNameToken.

Para configurar o provedor de serviços da Web:

  1. Na janela Projetos, expanda o nó StockServer e o nó Serviços da Web.
  2. No nó Serviços da Web, clique com o botão direito do mouse no nó stockservice e escolha Editar atributos do serviço da Web no menu pop-up.
    A caixa de diálogo Configuração de segurança do provedor de serviços da Web é aberta.
  3. Marque a caixa de seleção Ativar segurança de nível de mensagem.
  4. Em Mecanismos de segurança, na lista suspensa Solicitar, selecione UserNameToken.

  5. Clique em OK.

Para configurar o cliente de serviços da Web:

  1. Na janela Projetos, expanda o nó StockClient e o nó Referências de serviços da Web.
  2. No nó Referências de serviços da Web, clique com o botão direito do mouse no nó Stockservice e escolha Editar atributos do serviço da Web no menu pop-up.
    A caixa de diálogo Configuração de segurança do cliente de serviços da Web é aberta.
  3. Marque a caixa de seleção Ativar segurança de nível de mensagem.
  4. Em Mecanismo de segurança, na lista suspensa Solicitar, selecione UserNameToken.
  5. No campo Nome de usuário, digite sherry e no campo Senha, digite mypw.
  6. Marque a caixa de seleção Verificar resposta.
  7. Em Configurações de certificado existentes, deixe marcada a caixa de seleção Usar armazenamento de chaves padrão.

  8. Clique em OK.

Você agora pode implantar e executar a amostra, seguindo as instruções existentes em Implantando e executando o projeto.

superior


Implantando e executando o projeto

  1. Na janela Projetos, clique com o botão direito do mouse no nó do projeto StockServer e escolha Implantar projeto.
    O IDE realiza os seguintes procedimentos:
    • Inicia o servidor de aplicativos, caso ele ainda não tenha sido iniciado.
    • Constrói o projeto StockServer. Você pode ver os resultados da construção na janela Saída.
    • Implanta server.war no servidor de aplicativos.
  2. Na janela Projetos, clique com o botão direito do mouse no nó do projeto StockClient e escolha Executar projeto.
    O IDE realiza os seguintes procedimentos:
    • Constrói o projeto StockClient. Você pode ver os resultados da construção na janela Saída.
    • Implanta client.war no servidor de aplicativos.
    • Abre o aplicativo no navegador.
    • Verifica se o navegador está aberto no seguinte URL:
      http://localhost:8080/stockclient/

  3. Clique em Enviar.

superior

Explorando os arquivos de log

As instruções desta seção são opcionais. Destinam-se a usuários que estão interessados em ver as alterações nos arquivos de log.

  1. Antes de prosseguir para a próxima etapa, ative o nível de registro ótimo.
    Siga as instruções existentes em Alterando o nível de segurança no servidor de aplicativos.
  2. Na janela Projetos, clique com o botão direito do mouse no nó do projeto StockClient e escolha Executar projeto no menu pop-up.
  3. Abra o arquivo de log do servidor de aplicativos (server.log) no seguinte diretório: diretório de instalação do servidor de aplicativos\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.
  4. 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.

superior

Tarefas de configuração adicionais

Esta seção fornece informações sobre as tarefas de configuração adicionais que talvez você queira realizar.

Adicionando um servidor de aplicativos

  1. Na janela Tempo de execução, 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.
  2. Na página Escolher servidor, na lista suspensa Servidor, selecione Servidor de aplicativos Sun Java System.
  3. (Opcional) No campo Nome, aceite o valor padrão ou digite o nome que você deseja usar para identificar o servidor no IDE.
  4. Clique em Próximo.
    A página Local da pasta da plataforma é aberta.
  5. No campo Local da plataforma, use o botão Explorar para navegar e selecionar o local de instalação do servidor de aplicativos.
    Caso você tenha aceito os valores padrão durante a instalação, o local é C:\Sun\Appserver.
  6. Selecione o botão de opção Registrar domínio local padrão.
  7. Clique em Próximo.
  8. Forneça o nome de usuário e a senha do administrador do domínio.
    Caso você tenha aceito os valores padrão durante a instalação, o nome de usuário é admin e a senha é adminadmin.
  9. Clique em Finalizar.

superior

Verificando a configuração da instalação do gerenciador de acesso

  1. Inicie o servidor de aplicativos.
  2. Na janela Tempo de execução, expanda o nó Gerenciadores de acesso Sun Java System.
  3. Clique com o botão direito do mouse no nó Instância padrão e escolha Exibir console de administração.
    Uma nova sessão do navegador é iniciada, apontando para o seguinte URL: http://localhost:8080/amserver.
    A página Logon do gerenciador de acesso Sun Java System é aberta, indicando que o servidor do gerenciador de acesso está em execução.

superior

Informações de configuração para servidor de aplicativos não instalado na porta 8080

Se a instalação do Servidor de aplicativos Sun Java System foi feita em uma porta diferente da 8080, você deve realizar as etapas de configuração adicionais mostradas abaixo.

  1. Na janela Projetos, expanda StockClient > Páginas da Web > WEB-INF e wsdl, e abra o arquivo stock.wsdl no editor.
  2. Clique no botão Fonte para alternar para a exibição Fonte do arquivo.
  3. 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/"/>
  4. Substitua o valor 8080 pelo número da porta onde o servidor de aplicativos está instalado.
  5. Salve suas alterações e feche o arquivo.

superior

Alterando o nível de segurança no servidor de aplicativos

  1. Na janela Tempo de execução, clique com o botão direito do mouse no nó Servidor de aplicativos Sun Java System 9 e escolha Exibir console de administração.
  2. Digite admin como o nome de usuário e adminadmin como a senha.
  3. No quadro de navegação esquerdo, clique no link do servidor de aplicativos.
  4. No quadro direito, clique na guia Registro e na guia Níveis de registro.

    Console de administração do servidor de aplicativos, guia Níveis de registro, clique para aumentar

  5. Role para o fim da página e defina a Segurança como ÓTIMA.

    Console de administração do servidor de aplicativos, Configuração de segurança, clique para aumentar

  6. Clique no botão Salvar e faça logoff.

superior


Solução de problemas

Esta seção fornece informações sobre soluções dos problemas que você pode encontrar.

Exceção lançada ao chamar o cliente

Quando o cliente é chamado, ele lança a seguinte exceção no navegador:

Detectada uma exceção java.rmi.ServerException: JAXRPCSERVLET28: Informação de porta ausente

A possível causa dessa exceção:

  • O mecanismo de segurança escolhido para o cliente não está na lista de mecanismos aceitos pelo servidor. Neste caso, garanta a seleção do mesmo mecanismo de segurança para o cliente e para o servidor.

Referências

superior


Resumo

Neste tutorial, você usou o NetBeans Enterprise Pack 5.5 para adicionar a um aplicativo a autenticação baseada em SAML e em UserNameToken. O tutorial mostra a facilidade de uso oferecida pelo NetBeans, já que tudo o que você precisou fazer foi usar os assistentes Configuração de segurança do provedor e Cliente de serviços da Web --- nenhum conhecimento detalhado de SAML foi necessário!



superior


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by