Implementación de aplicaciones de JAX-RS seguras

IBM® Runtime Environment for Java™ API for RESTful Web Services (JAX-RS) se controla mediante un servlet que deriva del proyecto Apache Wink. En el entono de ejecución de WebSphere Application Server, el ciclo de vida de los servlets se gestiona en el contenedor web. Por lo tanto, los servicios de seguridad que ofrece el contenedor web se aplican a recursos REST que se han desplegado en WebSphere Application Server.

Acerca de esta tarea

Puede definir y añadir restricciones de seguridad en los recursos REST utilizando el mismo kit de herramientas que se utiliza para ensamblar aplicaciones REST. Estas restricciones se capturan en el descriptor de despliegue web J2EE que está asociado a la aplicación. En la lista siguiente se describen las definiciones de seguridad que se pueden incluir en el descriptor de despliegue:
  • La autenticación de usuario cuando se invoque a recursos REST incorporados en la aplicación, que incluye
    • Autenticación básica HTTP
    • Autenticación de inicio de sesión de formulario
  • Control de autorización sobre recursos REST tal como definen los patrones URL para los recursos
  • Uso de SSL para transporte cuando se invocan recursos REST
  • Uso programático del objeto SecurityContext para determinar la identidad y los roles del usuario
Todos los mecanismos de seguridad soportados por el contenedor web se aplican a los recursos REST, incluido el uso del mecanismo de autenticación SPNEGO basado en Kerberos.

Procedimiento

  1. Configure el entorno de desarrollo.
    1. Antes de comenzar a desarrollar aplicaciones de JAX-RS, debe configurar su entorno de desarrollo añadiendo las bibliotecas JAX-RS en la vía de acceso de clases.
  2. Defina los recursos en aplicaciones web de JAX-RS.
    1. Los recursos son el bloque de compilación básico de creación de un servicio RESTful. Los recursos pueden contener datos actualizados de forma estática o dinámica. Ejemplos de recursos de una aplicación de almacén de libros en línea incluyen un libro, un pedido en una tienda y una colección de usuarios. Identificando los recursos en la aplicación, puede hacer que el servicio resulte más útil y más fácil de desarrollar.
  3. Configure la aplicación JAX-RS.

    Puede configurar aplicaciones JAX-RS de varias maneras en función de sus necesidades. Para sacar partido de las funciones de Java Platform, Enterprise Edition (Java EE) 6, puede utilizar las prestaciones de exploración de anotaciones. Si utiliza la exploración de anotaciones, puede omitir una subclase JAX-RS javax.ws.rs.core.Application o tener una subclase javax.ws.rs.core.Application mínimamente definida. Como alternativa, puede especificar el servlet o el filtro IBM JAX-RS si desea utilizar las funciones disponibles en el servlet y el filtro IBM JAX-RS.

    Si utiliza uno de los métodos de configuración de JAX-RS Versión 1.1, puede omitir una subclase javax.ws.rs.core.Application en la aplicación o disponer de una subclase javax.ws.rs.core.Application que devuelva un conjunto vacío de clases para informar al entorno de ejecución JAX-RS para que busque y utilice todas las clases JAX-RS de la aplicación. Es posible que desee utilizar este método si no desea tener que añadir manualmente cada clase JAX-RS relevante a una subclase javax.ws.rs.core.Application mientras desarrolla la aplicación.

    Especificando el servlet y el filtro IBM específicos puede sacar partido y garantizar un comportamiento de IBM específico. Por ejemplo, el uso del filtro IBM JAX-RS puede ser útil en el desarrollo de una aplicación web con una combinación de recursos JAX-RS y archivos JavaServer Pages (JSP) con los mismos patrones de URL.

    Aunque hay un método de configuración JAX-RS V1.1 que admite el uso de un archivo web.xml, si desea especificar restricciones de seguridad o roles, o desea beneficiarse de otras características habilitadas utilizando un archivo web.xml, debe especificar la información en un archivo web.xml.

    Elija uno de estos tres métodos para configurar su aplicación JAX-RS:

    • Configurar las aplicaciones JAX-RS con métodos de JAX-RS 1.1

      Utilice este método si desea utilizar las prestaciones de exploración de anotaciones o utilizar los métodos de configuración de JAX-RS 1.1. Puede utilizar las prestaciones de exploración de anotaciones para promover la portabilidad de las aplicaciones, minimizar la cantidad de código de configuración o modificar dinámicamente la aplicación sin cambios en el código de aplicación.

    • Configure el archivo web.xml para los servlets de JAX-RS

      Utilice este método si desea especificar características que se habilitan mediante parámetros de inicialización de servlet para cambiar el comportamiento y para asegurarse de obtener el servlet IBM JAX-RS. Cuando se utilizan servlets, puede definir una vía de acceso del servlet en el archivo web.xml que se añadirá al URL base.

    • Configure el archivo web.xml para los filtros de JAX-RS

      Utilice este método si desea utilizar el filtro cuando tenga JSP, otros servlets y filtros y recursos JAX-RS con una combinación de patrones de URL. Puede configurar el archivo web.xml para definir filtros que indican los posibles URL en los que se puede invocar el filtro.

  4. Protección de aplicaciones de JAX-RS en el contenedor web.
    1. Mediante los servicios de seguridad disponibles para el contenedor web, puede proteger recursos REST configurando mecanismos de seguridad que definen la autenticación de usuarios REST, la seguridad de transporte, el control de autorización y las correlaciones de usuarios con roles.
  5. Proteja los recursos JAX-RS mediante anotaciones.
    1. Puede proteger recursos JAX-RS utilizando anotaciones que especifiquen valores de seguridad. Puede utilizar las anotaciones @PermitAll, @DenyAll y @RolesAllowed para alterar temporalmente la configuración de las restricciones de seguridad definidas en el archivo web.xml.
  6. (opcional) Protección en sentido descendente de recursos JAX-RS.
    1. Puede proteger en sentido descendente recursos JAX-RS mediante la configuración del método BasicAuth para la autenticación y utilizando el manejador de seguridad JAX-RS de LTPA para aprovechar las ventajas del inicio de sesión único para la autenticación de usuarios.
  7. (opcional) Protección de clientes de JAX-RS que utilizan SSL.
    1. Puede proteger las comunicaciones entre la aplicación JAX-RS y los clientes que invoquen la aplicación utilizando la seguridad de capa de transporte SSL (Secure Sockets Layer).
  8. Ensamble las aplicaciones web de JAX-RS.
    1. Después de desarrollar los archivos de clase Java para la aplicación web de JAX-RS y tras editar el archivo web.xml para habilitar el servlet de JAX-RS, ya estará listo para ensamblar la aplicación. Ensamble la aplicación web en un paquete WAR (Web Application Archive). Puede ensamblar el paquete WAR en un paquete archivador empresarial (EAR), si fuera preciso.
  9. Despliegue las aplicaciones web de JAX-RS.
    1. Una vez que ha ensamblado la aplicación web JAX-RS, debe desplegar el paquete WAR (Web Archive) o el paquete EAR (Enterprise Archive) en el servidor de aplicaciones.
  10. Administre la aplicación JAX-RS segura.
    1. Después de haber implementado mecanismos de seguridad como, por ejemplo, la autenticación HTTP básica o restricciones en la autorización basada en roles en los recursos REST, puede utilizar la consola administrativa para administrar las aplicaciones de JAX-RS mediante la correlación de roles definidos para los usuarios, grupos o sujetos especiales.

Resultados

Ha desarrollado y desplegado una aplicación web de JAX-RS protegida en el servidor de aplicaciones. También puede utilizar la consola administrativa para administrar la aplicación de JAX-RS protegida.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_impl_securejaxrs
File name: twbs_jaxrs_impl_securejaxrs.html