2004/12/06

JAAS

Despues de una ardua lectura sobre como estandarizar la autenticación y la autorización en aplicaciones Java, se llega a las siguientes alternativas:
  1. Estandar declarativa: Es decir, manejada por el contenedor por medio de los descriptores y JAAS. Esta tiene el problema de que la configuración de los usuarios y los roles es Application Server Specific (en JBoss 3.2 por ejemplo hay que heredar de una clase abstracta de LoginModule, que maneja unos metodos no estandar de LoginModule). Adicionalmente los ACLs al ser especificados mediante expresiones regulares reducidas sobre las URLs, toca cambiar el esquema de URL que se este manejando. En la actual aplicacion que construyo, involucra cambiar la jerarquia de los Actions de Struts que son los encargados de hacer la validación de autenticación y autorización, para delegarle esta tarea al contenedor. Esta hace uso de un action especial, que se encarga de atender el container por si solo y que adicionalmente hará caso omiso de los filtros definidos para las de mas URLs.
  2. Estadard programatica: Es decir, manejada en el aplicativo mismo, de forma programatica utilizando JAAS (un filtro es una buena opción, pero si todo se deja programatico, el cambio es bastante complejo).
  3. No estandar declarativa: Esto es, no utilizar JAAS, y tener descriptores (posiblmente en XML) para las ACLs.
  4. No estandar programatica: Esto es, no utilizar JAAS y no tener descriptores, sino realizarlo todo mediante codigo.
Proximamente revisare mas en detalle la arquitectura de seguridad de XPlanner para poder tomar una mejor decisión en este tema. Por lo que pude ver en una breve mirada, es que usan un filtro que utiliza JAAS y que es el encargado de hacer los chequeos de seguridad sin depender de la definición del application server, ni los limitados constraints del web.xml y ejb-jar.xml y sin embargo manteniendo versatilidad en el tema de permisos al permitir los cambios de forma declarativa. Sin embargo a primera vista, hay un cambio radical en una concepción inicial que tenia sobre el tema de Container Managed Persistence: Las opciones del aplicativo siempre se mostrarán y estaran disponibles para hacerles peticiones; cuando la petición ocurra son validadas las credenciales del usuario para denegar o rechazar la solicitud.

1 Comments:

At 9:27 p. m., Blogger Clara said...

me no entender nadita :'(

 

Publicar un comentario

<< Home