Notas de la versión de Sun Java System Message Queue 4.1

JAAS y Message Queue

La siguiente figura muestra cómo el agente de Message Queue utiliza JAAS. Muestra una implementación más compleja del modelo JAAS mostrado en la figura anterior.

Figura 1–2 Cómo utiliza JAAS Message Queue

En la figura se muestra cómo se utiliza la autenticación compatible con JAAS en Message Queue. El texto que sigue a la figura explica su contenido.

Tal y como se indicaba en el caso más simple, la capa del servicio de autenticación es independiente del agente. El servicio de autenticación consiste en uno o más módulos de registro (LoginModule) y en los módulos de autenticación adicionales que sean necesarios. Los módulos de registro se ejecutan en la misma máquina virtual Java que el agente. El agente de Message Queue se representa en el módulo de registro como un LogInContext y se comunica con él mediante un CallBackHandler que forma parte del código de tiempo de ejecución del agente.

El servicio de autenticación también proporciona un archivo de configuración JAAS que contiene entradas a los módulos de registro. El archivo de autenticación especifica el orden en que deben utilizarse los módulos y algunas condiciones para su uso. Al iniciarse el agente, JAAS localiza el archivo de configuración mediante la propiedad del sistema Java java.security.auth.login.config o mediante el archivo de propiedades de seguridad de Java. Después selecciona una entrada en el archivo de configuración JAAS, según el valor de la propiedad del agente imq.user_repository.jaas.name . Esa entrada especifica cuáles serán los módulos de registro que se utilizarán para la autenticación. Como muestra la figura, el agente puede utilizar más de un módulo de registro. (La relación entre el archivo de configuración, el módulo de registro y el agente se muestra en la Figura 1–3.)

El hecho de que el agente utilice un servicio de autenticación complemento de JAAS permanece totalmente transparente para el cliente de Message Queue. El cliente continúa conectándose al agente como lo hacía antes, mediante un nombre de usuario y una contraseña. El agente, por su parte, utiliza un controlador de devolución de llamadas para pasar esta información al servicio de autenticación, el cual utiliza esta información para autenticar al usuario y devolver los resultados. Si la autenticación tiene éxito, el agente permitirá la conexión; pero si falla, el tiempo de ejecución del cliente devolverá una excepción de seguridad de JMS que el cliente deberá solucionar.

Una vez autenticado el cliente de Message Queue (y siempre que haya que hacer más tareas de autorización), al agente procede normalmente: consulta el archivo de control de acceso para determinar si el cliente autenticado tiene autorización para realizar las acciones a su cargo: acceder a un destino, consumir un mensaje, examinar una cola, etc.