Configuración de inicio de sesión de JAAS (Java Authentication and Authorization Service)
Java™ Authentication and Authorization Service (JAAS) es una nueva característica de WebSphere Application Server. JAAS es la API (interfaz de programación de aplicaciones) estratégica de WebSphere Application Server para autenticación que sustituye a la API de inicio de sesión programado de CORBA (Common Object Request Broker Architecture).
WebSphere Application Server proporciona algunas extensiones a JAAS:
- com.ibm.websphere.security.auth.WSSubject: La API com.ibm.websphere.security.auth.WSSubject
amplía el modelo de autorización JAAS a los recursos J2EE (Java 2 Platform, Enterprise Edition (J2EE). Puede configurar el inicio de sesión JAAS en la consola administrativa, o utilizando las funciones de
scripts, y almacenar esta configuración en la API (Interfaz de programas de aplicación) de configuración de
WebSphere Application Server. No obstante, WebSphere Application Server continúa
dando soporte al formato de configuración de inicio de sesión JAAS por omisión, archivo de texto plano, que
proporciona la implementación por omisión de JAAS. Si hay configuraciones de inicio de sesión duplicadas
definidas en formato de archivo de texto plano y en la API de configuración de
WebSphere Application Server, la de
WebSphere Application Server tiene prioridad. Las ventajas de definir la configuración de inicio de sesión en la API de configuración de
WebSphere son:
- Soporte de interfaz de usuario al definir la configuración de inicio de sesión JAAS
- Gestión central de la configuración de inicio de sesión JAAS
- Distribución de la configuración de inicio de sesión JAAS en una instalación del producto WebSphere Application Server, Network Deployment
Debido a un error de diseño en el método de JAAS Versión 1.0, javax.security.auth.Subject.getSubject no devuelve el objeto Subject asociado a la hebra en ejecución incluida en un bloque de código java.security.AccessController.doPrivileged. Esto puede dar lugar a un comportamiento incoherente que puede resultar problemático. La extensión com.ibm.websphere.security.auth.WSSubject proporciona una solución alternativa que permite asociar el objeto Subject a la hebra en ejecución. La extensión com.ibm.websphere.security.auth.WSSubject amplía el modelo de autorización JAAS a los recursos J2EE.
Por qué WebSphere Application Server tiene su propia clase de sujeto: puede recuperar los sujetos en un bloque Subject.doAs con la llamada Subject.getSubject. Sin embargo, este procedimiento no funciona si existe una llamada AccessController.doPrivileged en el bloque Subject.doAs. En el siguiente ejemplo, s1 es igual a s, pero s2 es nulo:* AccessController.doPrivileged() no solo trunca la propagación de Subject, * sino que también reduce los permisos. No incluye la política de seguridad JAAS * definida para los principales de Subject. Subject.doAs(s, new PrivilegedAction() { public Object run() { System.out.println("Within Subject.doAsPrivileged()"); Subject s1 = Subject.getSubject(AccessController.getContext()); AccessController.doPrivileged(new PrivilegedAction() { public Object run() { Subject s2 = Subject.getSubject(AccessController.getContext()); return null; } }); return null; } });
- La configuración de inicio de sesión de JAAS se puede efectuar en la consola administrativa, o utilizando
las funciones de scripts, y almacenar en el depósito de configuración de
WebSphere Application Server. Las aplicaciones pueden definir la nueva
configuración de inicio de sesión JAAS en la consola administrativa y los datos persisten en el repositorio de
configuración almacenado en la API de configuración de
WebSphere Application Server. No obstante,
WebSphere Application Server continúa
dando soporte al formato de configuración de inicio de sesión JAAS por omisión que proporciona la
implementación por omisión de JAAS. Si hay
configuraciones de inicio de sesión duplicadas definidas en formato de archivo de texto plano y en la API de
configuración de WebSphere Application Server, la de
WebSphere Application Server tiene prioridad. Las ventajas de definir la
configuración de inicio de sesión en la API de configuración de WebSphere Application Server son:
- Soporte de UI para definir la configuración de inicio de sesión JAAS.
- La configuración de inicio de sesión de la configuración JAAS se puede gestionar centralmente.
- La configuración de inicio de sesión de la configuración JAAS se distribuye en una instalación de WebSphere Application Server, Network Deployment.
- LoginModule de proxy: Proxy.LoginModule es un proxy del usuario configurado o módulo definido por el sistema que utiliza el cargador de clases de contexto, en lugar del cargador de clases del sistema, para cargar el módulo. La implementación JAAS por omisión no utiliza el cargador de clases de contexto de hebra para cargar las clases. El módulo LoginModule no puede cargarse si el archivo de clase de LoginModule no está en el cargador de clases de la aplicación ni en la classpath del cargador de clases de la extensión Java. WebSphere Application Server proporciona un módulo LoginModule de proxy que permite cargar el LoginModule de JAAS utilizando el cargador de clases del contexto de la hebra. No es necesario colocar la implementación de LoginModule en el cargador de clases de la aplicación ni en la classpath del cargador de clases de la extensión Java con este módulo LoginModule del proxy.
Un administrador del sistema determina las tecnologías de autenticación o módulos de inicio de sesión que se han de utilizar para cada aplicación y las configura en una configuración de inicio de sesión. El origen de la información de configuración, por ejemplo, un archivo o una base de datos, está en la implementación actual de javax.security.auth.login.Configuration. La implementación de WebSphere Application Server permite que la configuración de inicio de sesión se defina en el documento de seguridad de la API de configuración de WebSphere Application Server y en un archivo de configuración JAAS donde el primero tiene prioridad.
- Pulse .
- En JAAS (Java Authentication and Authorization Service), pulse Inicio de sesión de la aplicación.
El módulo WSLogin define una configuración de inicio de sesión y la implementación de LoginModule que pueden utilizar las aplicaciones en general.
El módulo ClientContainer define una configuración de inicio de sesión y la implementación de LoginModule similar a la de la configuración WSLogin, pero aplica los requisitos del contenedor de cliente de WebSphere Application Server.
El módulo DefaultPrincipalMapping define un LoginModule especial utilizado habitualmente por Java 2 Connector para correlacionar una identidad de usuario de WebSphere Application Server autenticada con un conjunto de datos de autenticación de usuario (ID de usuario y contraseña) para el sistema EIS (Enterprise Information System) de programa de fondo. Para obtener más información acerca de Java 2 Connector y DefaultMappingModule, consulte la sección sobre seguridad de Java 2.
Una configuración de inicio de sesión JAAS nueva se puede añadir y modificar mediante la consola administrativa. Los cambios se guardan en el documento de seguridad de nivel de célula y están disponibles a todos los servidores de aplicación gestionados. Es necesario reiniciar el servidor de aplicaciones para que los cambios entren en vigor durante la ejecución y para que esté disponible la configuración de inicio de sesión del contenedor de cliente.
WebSphere Application Server también lee la información de configuración de JAAS desde el archivo wsjaas.conf en el subdirectorio de propiedades del directorio raíz bajo el que está instalado WebSphere Application Server. Los cambios realizados en el archivo wsjaas.conf los utiliza solamente el servidores de aplicaciones local y entran en vigor en cuanto se reinicia el servidor de aplicaciones. La configuración de JAAS en el documento de seguridad de la API de configuración de WebSphere Application Server tiene prioridad sobre lo definido en el archivo wsjaas.conf. Una entrada de configuración en el archivo wsjaas.conf es modificada por una entrada del mismo nombre de alias en el documento de seguridad de la API de configuración de WebSphere Application Server.
Las entradas de la configuración de inicio de sesión JAAS (Java Authentication and Authorization Service) de la consola de administración se propagan en el código de tiempo de ejecución del servidor cuando se crean, no cuando se guarda la configuración. No obstante, las entradas de la configuración de inicio de sesión JAAS suprimidas no se eliminan del código de tiempo de ejecución del servidor. Para eliminar las entradas, guarde la nueva configuración, y detenga y reinicie el servidor.
- JAAS (Java Authentication and Authorization Service) de J2EE (Java 2 Platform, Enterprise Edition)
- JAAS para WebSphere Application Server
- Seguridad de WebSphere Application Server