FeaturesPluginsDocs & SupportCommunityPartners

Protegendo os serviços da Web usando o perfil de símbolo do Liberty

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 proteger um provedor de serviço baseado em identidade (WSP) em uma empresa ou organização. A Identidade em uma interação do cliente de serviços da Web com o provedor de serviços da Web pode ser caracterizada como:

  • A identidade do cliente de serviços da Web que está acessando o provedor de serviços da Web
  • A identidade do usuário final que está acessando o cliente de serviços da Web para se comunicar com o provedor de serviços da Web

O Netbeans Enterprise Pack oferece suporte a perfis de símbolo que se reúnem em duas categorias:

  • Os símbolos de perfil de segurança básicos (WSI) usados especialmente para a interação do cliente de serviços da Web com o provedor de serviços da Web. Aqui a única informação de identidade que é passada para o provedor de serviços da Web é a do cliente de serviços da Web.
  • Esses perfis de símbolo de segurança do Liberty são usados quando há necessidade de obter a identidade do usuário final. O usuário final aqui é aquele que usa o WSC para solicitar um serviço do WSP. O IDE automatiza a autenticação do usuário final do WSP e a configuração do contexto de segurança do serviço da Web WSP Java EE para a do usuário final.

Este tutorial explica como o IDE usa o perfil de símbolo do Liberty para enviar a identidade do chamador para o Serviço de calendário.

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: CalendarServer e CalendarClient. O aplicativo Calendário é uma simples implementação para a criação de eventos de calendário. Ele mantém um mapa estático de eventos de calendário e os retorna, quando necessário.

Para criar o projeto CalendarServer:

  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 Serviço de calendário.
  4. Clique em Próximo.
  5. Aceite o nome de projeto padrão (CalendarServer) e, opcionalmente, altere o Local do projeto.
  6. Clique em Finalizar.
    Uma caixa de diálogo de progresso aparece e, em seguida, o nó CalendarServer aparece na janela Projetos.

Para criar o projeto CalendarClient:

  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 Cliente de calendário.
  4. Clique em Próximo.
  5. Aceite os valores padrão do Nome de projeto (CalendarClient) e o Local do projeto.
  6. Clique em Finalizar.
    Uma caixa de diálogo de progresso é exibida e, em seguida, o nó CalendarClient é exibido na janela Projetos.

superior


Protegendo os serviços da Web usando um mecanismo de segurança do Liberty

Antes da implantação do projeto, o serviço da Web deve estar protegido por meio de mecanismos de segurança do Liberty. Neste cenário, estamos usando o perfil de segurança Liberty Bearer Token.

Para configurar o provedor de serviços da Web:

  1. Na janela Projetos, expanda o nó CalendarServer e o nó Serviços da Web.
  2. No nó Serviços da Web, clique com o botão direito do mouse no nó CalendarService e escolha Editar atributos do serviço da Web no menu pop-up.
    O Editor de atributos do serviço da Web se abre com a guia Segurança aberta, para que você possa configurar a segurança do provedor de serviços da Web.
  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 LibertyBearerToken.

  5. Clique em OK.

Para configurar o cliente de serviços da Web:

  1. Na janela Projetos, expanda o nó CalendarClient e o nó Referência 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ó CalendarService e escolha Editar atributos do serviço da Web no menu pop-up.
    O Editor de atributos do serviço da Web se abre com a guia Segurança aberta para que você possa configurar a segurança do cliente de serviços da Web.
  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 LibertyDiscoverySecurity.
  5. Marque a caixa de seleção Resposta para verificar a resposta.
  6. Em Configurações de certificado existentes, deixe marcada a caixa de seleção Usar armazenamento de chaves padrão.

  7. Clique em OK.

superior


Implantando e executando o projeto

  1. Na janela Projetos, clique com o botão direito do mouse no nó do projeto CalendarServer 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 CalendarServer.
      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 CalendarClient e escolha Executar projeto.
    O IDE realiza os seguintes procedimentos:
    • Constrói o projeto CalendarClient.
      Você pode ver os resultados da construção na janela Saída.
    • Implanta client.war no servidor de aplicativos.
    • Abre o aplicativo no navegador.
  3. Digite jsmith nos campos Nome de usuário e Senha.

    Clique para aumentar

  4. Clique em Logon.
    A página de boas-vindas do aplicativo é aberta.
  5. Na lista suspensa, selecione jsmith e no campo de data, insira uma data ou aceite o padrão.

  6. Clique em Obter eventos.
    Observe que o Calendário de jsmith é postado.

    Clique para aumentar

superior


Explorando o descritor de implantação do aplicativo cliente

  1. Na janela Projetos, expanda o nó CalendarClient e expanda o nó Arquivos de configuração.
  2. Clique com o botão direito do mouse no nó sun-web.xml e escolha Editar.
    Observe a linha 3:

    <sun-web-app error-url="" httpservlet-security-provider="AMHttpProvider">

    e começando na linha 15:

    <message-security-binding auth-layer="SOAP" provider-id="AMClientProvider">
    	<message-security>
    		<message/>
    		<request-protection auth-source="content"/>
    		<response-protection auth-source="content"/>
    	</message-security>
    </message-security-binding>
    

    Observe que esses provedores garantem que o serviço da Web seja protegido com o perfil de símbolo do Liberty para se comunicar com o CalendarServer.
    O diagrama seguinte mostra o fluxo de trabalho da solicitação originada no cliente de serviços da Web (WSC) para o provedor de serviços da Web (WSP) através do provedor de identidade (IDP) e do Serviço de descoberta (Disco). Tenha em mente que existe um usuário final envolvido no acesso do WSC e que a identidade do usuário é finalmente transmitida para o WSP neste contexto de segurança.

    Clique para aumentar

    No diagrama acima, o HTTPProvider referido é o AMHttpProvider configurado no descritor de implantação Sun. Da mesma forma, o SOAPProvider é o AMClientProvider configurado no descritor de implantação Sun. O WSP é registrado primeiro no Serviço de descoberta como parte da implantação do IDE. Em seguida, quando o WSC tenta enviar uma solicitação para o WSP, o usuário final que está acessando o WSC primeiro é autenticado com sucesso no gerenciador de acesso para interagir com o Serviço de descoberta. Em seguida, o fluxo de trabalho continua para obter as credenciais do WSP e a solicitação é enviada para o WSP. Ao receber a solicitação, os SOAPProviders do Liberty do WSP realizam a verificação do símbolo e definem o assunto como o usuário autenticado no lado do WSC. Agora a lógica comercial no WSP prossegue.

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 CalendarClient 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. Procure por ServerAuthContext.validateRequest e ClientAuthContext.secureRequest para localizar as alterações no arquivo de log.
    As amostras das partes modificadas do arquivo de log 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 CalendarClient > Páginas da Web > WEB-INF e wsdl, e abra o arquivo CalendarService.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/CalendarService/CalendarService"/>
  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

Configurando o suporte ao perfil LibertySAMLToken

Para a amostra do Liberty, o NetBeans Enterprise Pack oferece suporte a três perfis de símbolo: LibertyBearerToken, LibertyX509Token e LibertySAMLToken. Se quiser usar o perfil LibertySAMLToken, realize as seguintes etapas de configuração manual:

  1. Certifique-se de que o servidor de aplicativos esteja em execução.
  2. Inicie uma nova sessão do navegador e indique o seguinte URL: http://localhost:8080/amserver.
  3. Na tela de logon, use os seguintes valores para fazer logon:
    Usuário: amadmin
    Senha: admin123 (esta é a senha padrão).
  4. Clique na guia Serviços da Web e, em seguida, na página Serviços da Web, clique na guia Serviço de descoberta.
  5. Role para o fim da página e na área Ofertas de recurso para inicialização, clique no tipo de serviço padrão, urn:liberty:disco:2003-08.
    A página Editar ofertas de recurso é aberta.
  6. Em Instância do serviço, na área Descrição do serviço, marque a caixa de seleção ao lado da entrada urn:liberty:security:2003-08:null:null e clique no botão Excluir.
    A área Descrição do serviço agora não possui itens.
  7. Na área Descrição do serviço, clique no botão Nova descrição.
    A página Novo ID do mecanismo de segurança é aberta.
  8. Na página Novo ID do mecanismo de segurança, na lista Disponível, selecione urn:liberty:security:2005-02:null:X509 e clique em OK.
    Observação: Se o sistema solicitar um URL de ponto de extremidade, você pode usar http://localhost:8080/amserver/Liberty/disco. Se o servidor não estiver instalado na porta 8080, substitua 8080 pelo número de porta correto.
    A página Editar oferta de recurso é aberta e em Instância do servidor, na área Descrição do serviço, agora existe uma entrada rotulada urn:liberty:security:2005-02:null:X509.
  9. Na página Editar oferta de recurso, clique em Salvar, em seguida, na página Serviço de descoberta, clique em Salvar.
  10. Na área de navegação superior, clique em 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.

superior


Referências



superior


Resumo

Neste tutorial, você usou o NetBeans Enterprise Pack 5.5 para proteger um provedor de serviços da Web baseado em identidade (WSP). Você usou a autenticação baseada em perfil de segurança do Liberty para um serviço da Web de calendário. Você aprendeu como proteger um provedor de serviços da Web baseado em identidade (WSP), e como autenticar o usuário acessando o serviço da Web através de um cliente de serviços da Web (WSC). 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.



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