Seguridad en Aplicaciones Web Fusion - Oracle ADF (Parte I)

Por Marcelo Vásquez
Publicado en octubre 2011


Los artículos que conforman esta serie son los siguientes:

Cuando empezamos a desarrollar por 1ra vez aplicaciones con Oracle ADF no tenemos claro como usamos la seguridad en nuestras aplicaciones.

Con Oracle Forms comúnmente usamos usuario y clave de base de datos, sin embargo en aplicaciones empresariales web se plantea otra arquitectura para nuestros sistemas de información.

Arquitectura propuesta

A continuación mostrare una posible arquitectura para aplicaciones ADF y haremos foco en esta oportunidad en la configuración de la seguridad.

aplicaciones ADF

En la figura se indica que el Weblogic contiene un contexto de seguridad, nuestra aplicación ADF y un Datasource.

  • Datasource: es un servicio que provee conectividad con la base de datos, utiliza JDBC para conectarse.
  •  App ADF: es nuestra aplicación ADF desplegada en el Weblogic.
  • Security Realms: es el reino de seguridad definido en el Weblogic, por defecto existe “myrealm”.

¿Cómo funciona?

Nuestra aplicación ADF para obtener los datos de la base de datos utiliza el servicio Datasource, si la pantalla que queremos visualizar necesita que el usuario este autenticado, va a utilizar el Security Realm para autenticar el usuario y la aplicación luego le muestra la pantalla o le permite realizar la acción que solicito.

Proveedor de autenticación

Dentro del reino de seguridad, uno de los componentes principales son los proveedores de autenticación que nos permiten autenticar a los usuarios de manera segura.

Paso a Paso

Paso 1: selección de mi reino de seguridad

En la consola hacemos clic en la opción “Security Realms” en donde se listan los reinos de seguridad, por default solo hay uno llamado “myrealm”, configuraremos este reino para que utilice un LDAP para la autenticación de los usuarios.

LDAP

Al ingresar a “myrealm”, vemos que hay varias solapas con distintas opciones para la configuración.  Lo importante es que para cada reino podemos definir distintos “Providers” es decir, proveedores para la autenticación, esto es muy práctico cuando uno posee varias fuentes de datos para la autenticación.

Por defecto Weblogic trae 2 (dos) providers, el que nos interesa es el “DefaultAutenticator” este provider contiene el usuario “weblogic” que usamos para la acceder a la consola, allí debemos realizar algún cambio para luego registrar nuestro propio provider.

Paso 2: modificación del provider por defecto.

En la solapa de configuración del provider “DefaultAutenticator” hay una opción control flag, esta opción indica como es la secuencia de autenticación del provider, debemos cambiarla a SUFFICIENT. Esto debemos hacelo asi, porque cuando tengamos otros providers, el Weblogic con el usuario y clave intentará verificar esos datos con cada uno de los providers definidos, entonces, si falla en el 1ro. intentará en el 2do. y asi sucesivamente hasta probar con todos. Si valida con alguno se detiene y le permite el acceso

Paso 3: creación de un nuevo proveedor de autenticación

A continuación crearemos un provider nuevo, que será nuestro OpenLdap, para ellos volvemos a la lista de providers y presionamos el boton “new” tal como se indica en la figura siguiente.

A continuación veremos que se muestra una pantalla en donde debemos ingresar el nombre el provider ( cualquier que nosotros elijamos ) y el tipo de autenticador, como verán es una lista muy grande entre los tipos de autenticadores que podemos elegir.

Nosotros para este ejemplo elegiremos “OpenLdap-Authenticator”.

Luego de crear nuestro provider, volvemos a la lista de provider y elegimos “OpenLdapTest” para poder editar y configurar los datos del LDAP.

Lo primero que debemos es setear el “Control Flag” a “SUFFICIENT” tal como lo hicimos con el “DefaultAuthenticator”. Luego ingresamos a la solapa Provider Specific y alli ingresamos los datos del OpenLdap para la autentificación.

Luego de ingresar todos los datos del OpenLdap, debemos tildar el checkbox “Use Retrieved User Name as Principal”. Esto no servirá para que luego desde nuestras aplicaciones ADF podamos obtener el “User Name” del usuario conectado, el cual podemos usarlo en la auditoría por ejemplo.

Luego de configurar los datos y salvar los cambios, nos pedirá que reiniciemos el Weblogic para que los cambios sean efectivos y esté disponible el nuevo Provider.

Volvemos a ingresar al reino de seguridad por defecto “myrealm” vemos una solapa de “Users and Groups” en donde podremos verificar si la configuración del OpenLdap funciono, ya que debe mostrarnos los usuarios y grupos del LDAP, en la figura se muestra un ejemplo en donde se ve que el usuario “iriartea” pertenece al Provider “openLdapTest”.

Con esto finalizamos la configuración del weblogic y la seguridad de acceso con openLDAP.

Ventajas

  • Podemos tener distintos proveedores de autenticación.
  • Podemos cambiar el proveedor de autenticación si afectar a nuestra aplicación ADF.
  • Bajo nivel de acoplamiento y dependencia entre la seguridad y nuestra aplicación ADF.



Publicado por Marcelo Vásquez. Especialista en Java y Oracle ADF, posee más de 13 años de experiencia en tecnologías ORACLE. Se desempeña como consultor, arquitecto y capacitador en JSDK, JEE, Frameworks y Oracle ADF.