Una configuración de inicio de sesión JAAS nueva se
puede añadir y modificar mediante la consola de administración. 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.
Antes de empezar
El servicio JAAS (Java™ Authentication and Authorization Service)
es una característica de WebSphere Application Server.
JAAS es un
conjunto de API de autenticación estratégica de WebSphere Application Server para sustituir las API de inicio de sesión programables 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 API amplía el modelo de autorización
de JAAS a los recursos Java EE (Java Platform, Enterprise Edition).
- Puede configurar el inicio de sesión JAAS en la consola administrativa
y almacenar esta configuración de inicio de sesión en la configuración de
Application Server.
No obstante,
WebSphere Application Server continúa dando soporte al formato de
configuración de inicio de sesión JAAS (archivo de texto plano) que
proporciona la implementación predeterminada 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
durante la instalación
Debido a un error de diseño en JAAS Versión 1.0, el método
javax.security.auth.Subject.getSubject no devuelve el sujeto asociado
a la hebra en ejecución incluida en un bloque de código
java.security.AccessController.doPrivileged.
Este problema representa un
comportamiento incoherente que puede ocasionar resultados desfavorables. La API
com.ibm.websphere.security.auth.WSSubject proporciona una solución
alternativa que permite asociar el sujeto con una hebra en ejecución.
- LoginModule de proxy. LoginModule de proxy carga el módulo
LoginModule real. 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 extensión Java. Debido a este problema de
visibilidad del cargador de clases, WebSphere Application Server
proporciona ahora un módulo LoginModule de proxy que permite cargar el
LoginModule de JAAS utilizando el cargador de clases de contexto de hebra. Con este módulo LoginModule de proxy, 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.
Si no desea utilizar el módulo LoginModule de proxy, puede colocar el módulo LoginModule en el directorio
raíz_servidor_aplic/lib/ext/.
No obstante,
esta acción no es recomendable debido a los riesgos de seguridad.
Si no desea utilizar el módulo LoginModule de proxy, puede colocar el módulo LoginModule en el directorio
INICIO_WAS/lib/ext/.
No obstante,
esta acción no es recomendable debido a los riesgos de seguridad.
Si no desea utilizar el módulo LoginModule de proxy, puede colocar el módulo LoginModule en el directorio /QIBM/UserData/Java400/ext para añadirlo a la
classpath de los directorios ampliados de Java. Asimismo, otorgue la autoridad *PUBLIC *RX
al archivo. No obstante, cuando añade el archivo al directorio /QIBM/UserData/Java400/ext/, el archivo también se añade a la classpath predeterminada de los directorios ampliados de Java, a la que puede acceder todo el sistema operativo.
Las configuraciones de inicio de sesión JAAS se definen en el documento de seguridad de la API (interfaz del
programa de aplicación) de configuración de WebSphere Application Server. Pulse Seguridad > Seguridad global. En JAAS (Java Authentication and Authorization Service), pulse
Inicio de sesión de la aplicación. Están disponibles las siguientes dos configuraciones de inicio de sesión JAAS:
- ClientContainer
- Define una configuración de inicio de sesión y una implementación de
LoginModule similar a la de la configuración WSLogin, pero aplica los
requisitos del contenedor de cliente de WebSphere Application Server. Para obtener más información, consulte Valores de entrada de configuración de JAAS (Java Authentication and Authorization Service).
- DefaultPrincipalMapping,
- Define un módulo LoginModule especial que utilizan generalmente los conectores Java EE para correlacionar una identidad de usuario de WebSphere Application Server autenticada con un conjunto de datos de autenticación de usuario (el ID de usuario y la contraseña) para el EIS (Enterpise Information System) de programa de fondo que se ha especificado. Para obtener más información acerca del conector Java EE y el módulo DefaultMappingModule, consulte la sección sobre seguridad de Java EE.
- WSLogin
- Define una configuración de inicio de sesión y una implementación de
LoginModule que pueden utilizar las aplicaciones en general.
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.
Atención: No suprima las configuraciones de inicio de sesión JAAS definidas previamente (por
ejemplo, ClientContainer, WSLogin y DefaultPrincipalMapping). Si las
suprime o elimina, es posible que las demás aplicaciones de empresa no
funcionen correctamente.
Procedimiento
- Suprima una configuración de inicio de sesión JAAS.
- Pulse Seguridad > Seguridad global.
- En JAAS (Java Authentication and Authorization Service), pulse
Inicio de sesión de la aplicación. Aparece el panel
Configuración de inicio de sesión de la aplicación.
- Seleccione el recuadro correspondiente a las configuraciones de inicio de sesión que se ha de suprimir y pulse Suprimir.
- Cree una nueva configuración de inicio de sesión JAAS.
- Pulse Seguridad > Seguridad global.
- En JAAS (Java Authentication and Authorization Service), pulse
Inicio de sesión de la aplicación.
- Pulse Nuevo. Aparece el panel
Configuración de inicio de sesión de la aplicación.
- Especifique el nombre de alias de la nueva Configuración de inicio de sesión
JAAS y pulse Aplicar. Este valor es el nombre de la
Configuración de inicio de sesión que se pasa a la implementación
javax.security.auth.login.LoginContext para crear un nuevo contexto
LoginContext.
Pulse Aplicar para guardar los cambios y añadir el nombre de
nodo adicional que precede al nombre de alias original. Si pulsa
Aceptar no se guardarán los nuevos cambios en el archivo
security.xml.
- En Propiedades adicionales, pulse Módulos de inicio de sesión de JAAS.
- Pulse Nuevo.
- Especifique el nombre de clase de módulo. Especifique el módulo LoginModule de proxy de WebSphere Application Server
debido a la limitación de visibilidad del cargador de clases.
- Especifique la implementación de LoginModule como propiedad
delegate del módulo LoginModule de proxy. El nombre de clase LoginModule de proxy de WebSphere Application Server es com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy.
- Seleccione Estrategia de autenticación en la lista y pulse Aplicar.
- En Propiedades adicionales, pulse Propiedades personalizadas. Se
muestra el panel Propiedades personalizadas correspondiente al
LoginModule seleccionado.
- Cree una nueva propiedad con el nombre delegate en
la que el valor sea la implementación real de LoginModule. Puede especificar otras propiedades como debug con el valor
true.
Estas propiedades se pasan a la clase de LoginModule como
opciones para el método initialize de la instancia de LoginModule.
- Pulse Guardar.
Para la
instalación de WebSphere Application Server, Network Deployment, asegúrese de llevar a cabo una
operación de sincronización de archivos para propagar los cambios a los
demás nodos.
Existen varias ubicaciones en la estructura de directorios
de WebSphere Application Server donde puede colocar un módulo de inicio de
sesión JAAS.
En la lista siguiente se proporcionan ubicaciones para el
módulo de inicio de sesión JAAS en orden de recomendación:
- En el archivo EAR (Enterprise Archive) para una aplicación Java EE (Java Platform, Enterprise Edition) específica.
Si coloca el módulo de
inicio de sesión en el archivo EAR, sólo es accesible para la aplicación
específica.
- En la biblioteca compartida de WebSphere Application Server.
Si coloca
el módulo de inicio de sesión en la biblioteca compartida, debe
especificar qué aplicaciones pueden acceder al módulo. Para obtener más información sobre bibliotecas compartidas, consulte el artículo Gestión de bibliotecas compartidas.
- En el directorio de extensiones Java.
Si coloca el módulo de inicio de sesión JAAS en el directorio de extensiones Java, todas las aplicaciones pueden acceder a dicho módulo de inicio de sesión.
No se recomienda esta ubicación para WebSphere Application Server para z/OS o WebSphere Business Integration Server Foundation.
Coloque el archivo de clase en el directorio /QIBM/UserData/Java400/ext para añadirlo a la classpath de los directorios ampliados de Java. Asimismo, otorgue la autoridad *PUBLIC *RX
al archivo. No obstante, cuando añade el archivo al directorio
/QIBM/UserData/Java400/ext, está añadiendo el archivo a la classpath predeterminada de los directorios ampliados de Java, a la que puede acceder todo el sistema operativo.
Aunque el directorio de extensiones Java proporciona una mayor
accesibilidad para el módulo de inicio de sesión, coloque el módulo de inicio de sesión en un archivo EAR de la aplicación. Si es necesario que las demás aplicaciones accedan al mismo módulo de
inicio de sesión, considere la utilización de bibliotecas compartidas.
- Cambie el archivo de texto plano.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
WebSphere Application Server da soporte al formato de configuración de inicio de sesión JAAS predeterminado, que es un archivo de texto plano proporcionado por la implementación predeterminada de JAAS. No obstante, no se proporciona una herramienta que edite los archivos de
texto plano en este formato. Puede definir la configuración de inicio de
sesión JAAS en el archivo de texto plano, que esta situado en el archivo
raíz_servidor_aplicaciones/properties/wsjaas.conf.
Cualquier error de sintaxis puede hacer que el archivo de texto plano de
configuración de inicio de sesión JAAS no se analice correctamente. Este
problema podría provocar anomalías en otras aplicaciones.
WebSphere Application Server da soporte al formato de configuración de inicio de sesión JAAS predeterminado, que es un archivo de texto plano proporcionado por la implementación predeterminada de JAAS. No obstante, no se proporciona una herramienta que edite los archivos de
texto plano en este formato. Puede definir la configuración de inicio de sesión JAAS en el archivo raíz_perfil/properties/wsjaas.conf.
Cualquier error de sintaxis puede hacer que el archivo de texto plano de
configuración de inicio de sesión JAAS no se analice correctamente. Este
problema podría provocar anomalías en otras aplicaciones.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Los programas clientes Java que utilizan JAAS (Java Authentication and Authorization Service) para la
autenticación deben invocar con el archivo de configuración JAAS especificado. Este archivo de configuración se establece en el archivo
raíz_servidor_aplic/bin/launchClient.bat como:
set JAAS_LOGIN_CONFIG=-Djava.security.auth.login.config=%install_root%\properties\wsjaas_client.conf
Si no se utiliza el archivo
launchClient.bat para invocar el programa cliente Java, asegúrese de que el archivo de configuración JAAS correspondiente se pasa a la máquina virtual Java con el distintivo
-Djava.security.auth.login.config.
Los programas clientes Java que utilizan JAAS para la autenticación deben invocar con el archivo de configuración JAAS especificado.
Este archivo de configuración
se establece en el script de QShell launchClient.
Si no se utiliza el
script launchClient para invocar el programa cliente Java, verifique que el archivo de configuración JAAS correspondiente se pasa a la máquina
virtual Java utilizando el distintivo -Djava.security.auth.login.config.
Resultados
Se crea una nueva configuración de inicio de sesión de JAAS o se
elimina la configuración de inicio de sesión de JAAS antigua. Una
aplicación de empresa puede utilizar una configuración de inicio de sesión
JAAS recién creada sin reiniciar el proceso de servidor de aplicaciones.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
No obstante, las configuraciones de inicio de sesión JAAS nuevas definidas en el archivo raíz_servidor_aplic/properties/wsjaas.conf, no se renuevan automáticamente. Reinicie los servidores de aplicaciones para validar los cambios. Estas configuraciones de inicio de sesión JAAS son
específicas de un nodo determinado y no están a disposición de otros
servidores de aplicaciones que se ejecuten en otros nodos.
No obstante, las configuraciones de inicio de sesión
JAAS nuevas definidas en el archivo
raíz_perfil/properties/wsjaas.conf, no se renuevan
automáticamente. Reinicie los servidores de aplicaciones para validar los cambios. Estas configuraciones de inicio de sesión JAAS son
específicas de un nodo determinado y no están a disposición de otros
servidores de aplicaciones que se ejecuten en otros nodos.
Qué hacer a continuación
Cree nuevas configuraciones de inicio de sesión de JAAS para que
las utilicen las aplicaciones de empresa para llevar a cabo la
autenticación personalizada. Utilice estas configuraciones de inicio de sesión de JAAS recién definidas para ejecutar el inicio de sesión mediante programa.