Configuración de un inicio de sesión programático JAAS en el contenedor de clientes de aplicaciones de Liberty
El contenedor de cliente de aplicaciones de Liberty se puede configurar para utilizar un inicio de sesión programático JAAS.
Antes de empezar
Acerca de esta tarea
- Configuración de inicio de sesión de JAAS WSLogin: una configuración de inicio de sesión de JAAS genérica que puede utilizar una aplicación de contenedor de clientes de aplicaciones de Liberty para llevar a cabo la autenticación que se utiliza en un ID de usuario y contraseña. Sin embargo, esta configuración no da soporte al manejador CallbackHandler que se ha especificado en el descriptor de despliegue del módulo de la aplicación cliente.
- Configuración de inicio de sesión de JAAS ClientContainer: esta configuración de inicio de sesión de
JAAS reconoce el manejador CallbackHandler que se ha especificado en el descriptor de despliegue del módulo de aplicación cliente, si se ha especificado alguno. Si no se ha especificado ningún manejador en el descriptor de despliegue, se utilizará el manejador que se ha especificado de forma programática.
Los módulos de inicio de sesión que se especifican mediante la configuración de inicio de sesión de JAAS implementan una determinada tecnología de autenticación. Un módulo de inicio de sesión puede recopilar credenciales del usuario utilizando la interfaz javax.security.auth.callback.CallbackHandler. Liberty proporciona una implementación sin solicitud de la interfaz CallbackHandler, que se denomina com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl. Esta implementación permite que un desarrollador de aplicaciones especifique las credenciales directamente en la aplicación sin tener que solicitar información al usuario. Hay dos formas de especificar su implementación CallbackHandler:
- Especifique su implementación de forma programática, como argumento al constructor javax.security.auth.login.LoginContext; por ejemplo:
LoginContext logincontext = new LoginContext("ClientContainer", new WSCallbackHandlerImpl("user", "password"));
- Especifique su nombre de implementación en el descriptor de despliegue del módulo de aplicación cliente (application-client.xml); por ejemplo:
<callbackhandler>com.acme.callbackhandler.WSCallbackHandlerImpl/<callbackhandler>
- Especifique su implementación de forma programática, como argumento al constructor javax.security.auth.login.LoginContext; por ejemplo: