Seguridad en Aplicaciones ADF Usando la Implementación JAAS del Oracle E-Business Suite SDK para Java

En una entrada pasada, demostré como acceder a las datos de las tablas en Oracle E-Business Suite y publicarlos a través de una aplicación ADF. En esta entrada vamos a hacer algo más complejo. Teniendo una aplicación ADF vamos a utilizar Oracle E-Business suite como el proveedor de usuarios y roles con los cuales vamos a asegurar nuestra aplicación.

La pieza principal que requerimos para realizar este ejercicio es el Oracle E-Business Suite SDK para Java, el cual realiza una implementación de JAAS para desarrollar toda la seguridad de aplicaciones Java utilizando Oracle E-Business Suite. Pueden encontrar una descripción más en detalle en esta entrada del blog del equipo de Tecnología de Oracle E-Business Suite.

La implementación se realiza en dos pasos, primero necesitamos realizar la configuración respectiva en WebLogic para que este se pueda conectar utilizando el Oracle E-Busieness Suite SDK. Lo segundo es hacer trabajar sobre la seguridad de la aplicación ADF, lo cual no presenta cambios extremos.

Esta integración esta completamente documentada en la nota de My Oracle Support Knowledge Documento 974949.1. Por lo que esta entrada la enfocaré en los pasos descritos en el documento en los que se tiene que tener cuidado y es fácil equivocarse y por ende empezar a tener errores.

Configuración en WebLogic

Dentro de la integración esta es la parte en donde se hace la mayor parte del trabajo. Lo primero es configurar el data source para conectarse con Oracle E-Business Suite llamado el AppsDataSource. Estos pasos están explicados en el documento en las secciones Configuring AppsDataSource and Configuring AppsDataSource on Oracle WebLogic Server (WLS):

Luego de creado el data source, se requiere crear y configurar un realm (directorio) que aprovisione los usuarios y roles dentro de las aplicaciones que se desplieguen en este dominio. En este caso los usuario están contenidos en tablas dentro de Oracle E-Business Suite. Los pasos para crear este realm se encuentran descritos en la sección: JAAS Configuration for Oracle WebLogic Server 10.3.5.0.

Cuando se crea el realm ha que prestar atención a los siguientes pasos:

  • ExternalAuthenticator: Weblogic server no trae ningún tipo de elementos para integrase con Oracle E-Business Suite. Durante la creación del data source, hay un paso en el que se requiere re-compilar el archivo fndtxt.jar que viene con el SDK utilizando el siguiente comando:
   1: java -classpath /tmp/mysrc:$CLASSPATH -DMJF=/tmp/mysrc/fndext.jar -Dfiles=/tmp/mysrc weblogic.management.commo.WebLogicMBeanMaker




Este comando no debería arrojar ningún error, de ser así el archivo jar causará errores extraños y simplemente no podrá conectarse con Oracle E-Business Suite.




  • DataSource: Dentro de la configuración del realm se tiene que mapear el data source a utilizar, el nombre JNDI del data source tiene que ser exacto al que se creó, incluyendo mayúsculas y minúsculas.





Configuración en ADF



El framework de seguridad de ADF soporta de forma transparente las configuraciones echas dentro Weblogic. Lo único que hay que tener en cuenta es que dentro de las instrucciones de la guía existen también algunos pasos que se tienen que realizar dentro de aplicaciones Java EE los cuales no son necesarios en ADF.



Un aspecto que se tiene que tener claro es que los roles de Oracle E-Business Suite que se quieran utilizar en las aplicaciones ADF deben ser definidos como Enterprise Roles. Así mismo hay que tener en cuenta que no se necesitan crear usuarios dentro de la aplicación ya que estos ya están dentro de Oracle E-Bussiness.



Cuando vaya a desplegar su aplicación ADF asegúrese que las siguientes opciones no estén seleccionadas:





El siguiente video hace una recapitulación de los pasos que describí.



Seguridad en Aplicaciones ADF Usando la Implementación JAAS del Oracle E-Business Suite SDK para Java