Protegendo Recursos JAX-RS de Recebimento de Dados

É possível proteger recursos Java™ API for RESTful Web Services (JAX-RS) de recebimento de dados configurando o método BasicAuth para autenticação e usando o manipulador de segurança LTPA JAX-RS para tirar vantagem da conexão única para a autenticação do usuário.

Antes de Iniciar

Essa tarefa assume que você concluiu as seguintes etapas:
  • Você definiu para o seu servidor de aplicativos um perfil de célula que está associado na célula do gerenciador de implementação.
  • Você instalou o seu aplicativo JAX-RS no servidor de aplicativos.
  • Você ativou a segurança para o seu aplicativo JAX-RS.
  • Você protegeu seus aplicativos JAX-RS dentro do contêiner da Web configurando aplicativos JAX-RS de recebimento de dados para usar o métodos de autenticação básica (BasicAuth) para autenticação de usuário.

Sobre Esta Tarefa

Ao compor recursos JAX-RS, um novo manipulador de segurança LTPA JAX-RS pode ser usado para autenticar de maneira transparente as chamadas de recurso de recebimento de dados.

Ao chamar recursos JAX-RS seguros de recebimento de dados, o aplicativo de chamada é obrigado a autenticar para o recurso de destino. Se o recurso de destino em um servidor de recebimento de dados usar o método BasicAuth para segurança, o aplicativo de chamada pode tirar vantagem da conexão única (SSO) para recursos JAX-RS. Usando uma conexão única, um contexto autenticado é propagado juntamente com as chamadas de recebimento de dados. É possível usar o manipulador do cliente de segurança baseado em LTPA para autenticar os recursos de recebimento de dados que são distribuídos entre servidores de um ambiente de célula.

Para ilustrar esse cenário, suponha que você tem dois servidores na sua célula, e que você implementou recursos JAX-RS em ambos os servidores. Suponha que de um recurso em server1 você precisa chamar outro recurso que está implementado no server2. Quando os recursos do server2 são protegidos usando o método BasicAuth para autenticação, use o manipulador de segurança LTPA JAX-RS para tirar vantagem da conexão única e propagar de forma transparente a autenticação do usuário em chamadas de recebimento de recursos sem ter de fornecer ou gerenciar identidades e senhas de usuário no aplicativo.

Figura 1. Protegendo Recursos JAX-RS de Recebimento de DadosÉ possível proteger recursos de JAX-RS de recebimento de dados configurando o método BasicAuth para autenticação e usando o manipulador de segurança LTPA JAX-RS.

Use as seguintes etapas para configurar a autenticação de usuário para um servidor de recebimento de dados usando o manipulador de segurança JAX-RS no tempo de construção do aplicativo.

Procedimento

  1. No tempo de construção do aplicativo, use o manipulador do cliente de segurança baseado em LTPA, LtpaAuthSecurityHandler, para autenticar recursos de recebimento de dados que são distribuídos entre servidores de um ambiente de célula.
    • Para JAX-RS 1.1, ao usar a classe LtpaAuthSecurityHandler, assegure-se de selecionar os recursos de destino que usam o esquema https para as suas URLs, e que o aplicativo de destino esteja ativado para SSL. É altamente recomendado usar conexões SSL ao enviar credenciais de usuário, incluindo cookies LTPA. Você pode explicitamente desativar o requisito para SSL na classe LtpaAuthSecurityHandler chamando o método setSSLRequired no manipulador de segurança com o valor false. O valor padrão é true.
      yourLtpaAuthSecHandler.setSSLRequired(false);
    • Para JAX-RS 2.0, é possível usar a propriedade do cliente com.ibm.ws.jaxrs.client.ltpa.handler para configurar o cookie SSO e configurar o valor para true:
      ClientBuilder cb = ClientBuilder.newBuilder();
      
              Client c = cb.build();
              c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
              WebTarget t = c.target("http://" + serverIP + ":" + serverPort + "/" + moduleName + "/ComplexClientTest/ComplexResource");
              String res = t.path("echo1").path("test1").request().get(String.class);
              c.close();
              ret.append(res);
  2. Inclua o manipulador de segurança na cadeia de manipuladores.
  3. Crie a instância do cliente REST.
  4. Crie a instância de recurso com a qual deseja interagir.
  5. Substitua um valor que representa o seu endereço de recurso.

Resultados

Você definiu recursos JAX-RS seguros dentro do seu ambiente de célula de forma que quando os recursos de recebimento de dados são chamados, é possível usar conexão única e propagar de forma transparente a autenticação do usuário em chamadas de recebimento de recursos sem ter de fornecer ou gerenciar identidades e senhas de usuário no aplicativo.

Exemplo

Para JAX-RS 1.1, o fragmento de código a seguir demonstra como usar esse manipulador de segurança que é empacotado como parte do cliente JAX-RS.
import org.apache.wink.client.Resource;
 import org.apache.wink.client.RestClient;
 import org.apache.wink.client.ClientConfig;
 import org.apache.wink.client.handlers.LtpaAuthSecurityHandler;

 ClientConfig config = new ClientConfig();
 LtpaAuthSecurityHandler secHandler = new LtpaAuthSecurityHandler();
 
 // Add this security handler to the handlers chain.
 config.handlers(secHandler);

 // Create the REST client instance. 
 RestClient client = new RestClient(config);

 // Crie a instância de recurso com a qual deseja interagir. 
 // Substitua um valor que representa o seu endereço de recurso
 resource =  
  client.resource("http://localhost:8080/path/to/resource");

// Agora você está pronto para começar a chamar o seu recurso.
Para JAX-RS 2.0, o fragmento de código a seguir demonstra como usar esse manipulador de segurança que é empacotado como parte do cliente JAX-RS.
ClientBuilder cb = ClientBuilder.newBuilder();
Client c = cb.build();
c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");

String res = "";
res = c.target("http://" + serverIP + ":" + serverPort + "/" + moduleName + "/rest/ltpa")
                            .request()
c.close();
return res;

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_impl_securejaxrs_downstreamresource
Nome do arquivo: twbs_jaxrs_impl_securejaxrs_downstreamresource.html