Seguridad de Java 2
Las funciones de Seguridad de Java™ 2 están soportadas en WebSphere Application Server Liberty. La Seguridad de Java 2 proporciona un mecanismo de control de acceso de alta precisión y basado en políticas que aumenta la integridad global del sistema mediante la comprobación de los permisos antes de permitir el acceso a determinados recursos del sistema protegidos.
Seguridad de Java 2 es independiente de la autorización basada en roles de Java Platform, Enterprise Edition. Seguridad de Java 2 protege el acceso a recursos del sistema como, por ejemplo, entrada y salida de archivo, sockets y propiedades; mientras que la seguridad de Java Platform, Enterprise Edition protege el acceso a recursos web, como servlets y archivos JSP.
Seguridad de Java 2 para desplegadores y administradores
Antes de habilitar la Seguridad de Java 2, asegúrese de que todas las aplicaciones tengan los permisos necesarios; de lo contrario, las aplicaciones podrían no ejecutarse. De forma predeterminada, se otorga a las aplicaciones los permisos por especificación de Java Platform, Enterprise Edition 7.0. Si una aplicación no está preparada para la Seguridad de Java 2 o si el proveedor de aplicaciones no proporciona un archivo permissions.xml como parte de la aplicación, la aplicación puede generar excepciones de control de acceso de Seguridad de Java 2 en el tiempo de ejecución cuando la Seguridad de Java 2 está habilitada. Aunque la aplicación se esté ejecutando, puede que no se ejecute correctamente.Seguridad de Java 2 para desarrolladores de aplicaciones
Los desarrolladores de aplicaciones deben comprender los permisos que se han otorgado en la política WebSphere predeterminada y los requisitos de permiso de las API de Java SDK. Debe saber si las API que invoca la aplicación requieren permisos adicionales o no. Si desea más información sobre qué API de Java requieren permisos, consulte Permisos en el Java 2 SDK.Cuando se trabaja con aplicaciones OSGi que contienen paquetes de aplicación web (WAB), se añaden permisos mediante el archivo permissions.perm. Si el WAB no tiene el archivo permissions.perm, la política toma como valor predeterminado java.security.AllPermission.
Habilitación de la Seguridad de Java 2
Las funciones de Seguridad de Java 2 forman parte de la extensión de kernel y se habilitan en tiempo de rutina de carga actualizando el archivo bootstrap.properties con la propiedad websphere.java.security.Si se especifica la propiedad websphere.java.security en el archivo bootstrap.properties, se aplica la Seguridad de Java 2; de lo contrario, no se realiza ninguna comprobación de permisos.
Especificación de permisos restringidos
Liberty proporciona un mecanismo para especificar permisos restringidos cuando ejecuta un componente de aplicación EJB o web. Un permiso restringido garantiza que no se otorgue ninguna instancia de ese permiso a un paquete o una aplicación. Proporciona un mecanismo para que las aplicaciones no se otorguen más permisos de los permitidos, por ejemplo, el permiso de salir de VM.<javaPermission className="java.security.PropertyPermission" name="os.name" actions="write" restriction="true" />
Otorgamiento de permisos
Los paquetes OSGi pueden autorregular los permisos que se otorgan a las bibliotecas/clases dentro del paquete utilizando el archivo permissions.perm.Las aplicaciones también pueden autorregular los permisos que se otorgan mediante el archivo permissions.xml o especificando los otorgamientos de permiso en los archivos server.xml y client.xml.
Permisos de paquetes OSGi
La especificación OSGi proporciona un mecanismo para especificar los permisos de un paquete utilizando el archivo permissions.perm en el directorio OSGI-INF del paquete. El mecanismo permite un control de acceso preciso de los permisos de un paquete.Declaración de permisos en server.xml y client.xml para las aplicaciones
Los permisos sin un codebase especificado, que se definen en los archivos server.xml y client.xml, se aplican a todas las aplicaciones en ese servidor de Liberty.<javaPermission className="java.util.PropertyPermission" name="*" actions="read" />
<javaPermission className="java.security.PropertyPermission" name="os.name" actions="write" restriction="true" />
- Un permiso restringido tiene restriction establecido en true.
- Si una aplicación intenta otorgarse un permiso definido como restricted, el permiso restringido tiene prioridad sobre el otorgamiento y no lo permite.
Declaración de permisos en permissions.xml para las aplicaciones
El archivo permissions.xml es un archivo nuevo que se ha presentado mediante la especificación de Java EE7. Se empaqueta en el directorio META-INF de una aplicación.Para las aplicaciones empaquetadas como un archivo .war autónomo, los permisos que se especifican en el nivel WAR de META-INF se aplican a todos los módulos y bibliotecas que están empaquetados dentro del archivo .war.
Para las aplicaciones que son paquetes en un archivo .ear, la declaración de permisos debe estar en el nivel del archivo .ear. Este conjunto de permisos se aplica a todos los módulos y bibliotecas que están empaquetados dentro del archivo .ear o dentro de sus módulos contenidos. Se ignora todo archivo permissions.xml dentro de estos módulos empaquetados, independientemente de si se proporciona un archivo permissions.xml para el propio archivo .ear.
Para las aplicaciones que están empaquetadas en un archivo .rar, la declaración de permisos debe estar en el nivel RAR de META-INF.