Protección en sentido descendente de recursos JAX-RS
Puede proteger los recursos JAX-RS (Java™ API for RESTful Web Services) en sentido descendente configurando el método BasicAuth para autenticación y utilizando el manejador de seguridad LTPA de JAX-RS para sacar partido del inicio de sesión único para la autenticación de usuarios.
Antes de empezar
- Ha definido en el servidor de aplicaciones un perfil de célula federado en la célula del gestor de despliegue.
- Ha instalado su aplicación de JAX-RS en el servidor de aplicaciones.
- Ha habilitado la seguridad para la aplicación JAX-RS.
- Ha protegido las aplicaciones JAX-RS dentro del contenedor web configurando aplicaciones JAX-RS en sentido descendente para utilizar el método de autenticación básica (BasicAuth) para la autenticación de usuarios.
Acerca de esta tarea
Al componer recursos JAX-RS, se puede utilizar un nuevo manejador de seguridad JAX-RS de LTPA para realizar la autenticación sin problemas en las invocaciones de recursos en sentido descendente.
Cuando se invocan recursos JAX-RS de protección en sentido descendente, es necesaria la aplicación que llama para autenticar al recurso de destino. Si el recurso de destino en un servidor en sentido descendente utiliza el método BasicAuth para la seguridad, la aplicación que llama puede aprovechar las ventajas de inicio de sesión único (SSO) para los recursos JAX-RS. Si se utiliza el inicio de sesión único, un contexto autenticado se propaga a lo largo de las llamadas en sentido descendente. Puede utilizar el manejador de cliente de seguridad basado en LTPA para autenticarse con los recursos en sentido descendente que se distribuyen entre servidores de un entorno de célula.
Para ilustrar este caso práctico, supongamos que tiene dos servidores en la célula y que ha desplegado recursos JAX-RS en ambos de estos servidores. Suponga que de un recurso en server1 necesita invocar a otro recurso que esté desplegado en server2. Cuando los recursos server2 están protegidos utilizando el método BasicAuth para autenticación, utilice el manejador de seguridad JAX-RS de LTPA para aprovechar el inicio de sesión único y, de igual modo, propagar la autenticación de usuarios en las llamadas en sentido descendente sin tener que proporcionar o gestionar identidades y contraseñas de usuario en la aplicación.

Siga estos pasos para configurar la autenticación de usuarios en un servidor en sentido descendente mediante el manejador de seguridad JAX-RS durante la compilación de la aplicación.
Procedimiento
Resultados
Ha definido recursos JAX-RS seguros en el entorno de célula de manera que, cuando se invoquen recursos en sentido descendente, pueda utilizar el inicio de sesión único y propagar sin interrupciones la autenticación en llamadas en sentido descendente sin tener que proporcionar ni gestionar identidades de usuario y contraseñas en la aplicación.
Ejemplo
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);
// Create the resource instance that you want to interact with.
// Substitute a value representing your resource address
resource =
client.resource("http://localhost:8080/path/to/resource");
// Now you are ready to begin calling your resource.
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;