Configuración de inicios de sesión mediante programa para JAAS (Java Authentication and Authorization Service)

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.

    [AIX Solaris HP-UX Linux Windows]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.

    [z/OS]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.

    [IBM i]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

  1. Suprima una configuración de inicio de sesión JAAS.
    1. Pulse Seguridad > Seguridad global.
    2. 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.
    3. Seleccione el recuadro correspondiente a las configuraciones de inicio de sesión que se ha de suprimir y pulse Suprimir.
  2. Cree una nueva configuración de inicio de sesión JAAS.
    1. Pulse Seguridad > Seguridad global.
    2. En JAAS (Java Authentication and Authorization Service), pulse Inicio de sesión de la aplicación.
    3. Pulse Nuevo. Aparece el panel Configuración de inicio de sesión de la aplicación.
    4. 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.

    5. En Propiedades adicionales, pulse Módulos de inicio de sesión de JAAS.
    6. Pulse Nuevo.
    7. 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.
    8. 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.
    9. Seleccione Estrategia de autenticación en la lista y pulse Aplicar.
    10. En Propiedades adicionales, pulse Propiedades personalizadas. Se muestra el panel Propiedades personalizadas correspondiente al LoginModule seleccionado.
    11. 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.
    12. 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.

      [z/OS]No se recomienda esta ubicación para WebSphere Application Server para z/OS o WebSphere Business Integration Server Foundation.

      [IBM i]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.

  3. Cambie el archivo de texto plano.

    [AIX Solaris HP-UX Linux Windows][z/OS]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.

    [IBM i]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][z/OS]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.

    [IBM i]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][z/OS]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.

[IBM i]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.

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=tsec_j2clogin
File name: tsec_j2clogin.html