Archivos de la categoría ‘AAA’

Las aplicaciones montadas con ADF proporcionan todo lo ideal para un desarrollador y las empresas en general. Son bonitas, muy interactivas, sencillas de desarrollar, altamente configurables y extremadamente poderosas. De igual forma, Weblogic proporciona la capa del servidor de aplicaciones para poder interactuar con cualquier recurso, dando la libertad de configurar cada uno de los elementos que tengamos.

Oracle Access Manager proporciona integración ante las aplicaciones desplegadas en este poderoso servidor, y además ofrece integración casi nativa con ADF security, y con las aplicaciones desarrolladas en weblogic. A pesar de que existen herramientas para automatizar ciertos procesos, cierto es que, lo mejor es aprender a realizar las cosas de forma manual.

Este post ofrece los pasos necesarios para hacer dichas integraciones. Antes que nada es preciso comentar que la integración entre las aplicaciones de Weblogic y Oracle Access Manager, se usa utilizando tanto un reverse proxy web (en el cual se monta el WebGate), como haciendo uso de un provider. Esto es para poder gestionar las peticiones y manejar de forma interna las sesiones. Ahora si, para poder autenticar aplicaciones usando Oracle Access Manager, debemos realizar lo siguiente:

  1. Antes que nada se debe crear la entrada del Access Gate que manejará las peticiones mediante el webProxy y el provider que se instala en WebLogic.
  2. Generar las políticas que se requieran, y mediante las mismas configurar los recursos y el método de autenticado que utilizarán
  3. Agregar y configurar el provider de Weblogic de OAM (OAM Identity Asserter), para Weblogic 11g en adelante, este provider ya esta instalado y solo es necesario configurarlo, en Weblogic 10 y previas, se requiere descargar desde la página de Oracle e instalarlo. Durante la configuración debemos asergurarnos de realizar lo siguiente:
    • Marcarlo como REQUIRED
    • Elegir ObSSOCookie como método de gestión de sesión
  4. Dependiendo la configuración de la aplicación, esta puede requerir además de un autenticado LDAP para obtener cierta información del usuario, de ser este el caso, el provider se debe configurar como SUFFICIENTE
  5. Todas las aplicaciones web, que se quieran integrar a Oracle Access Manager, deben modificar su archivo web.xml, para manejar como configuración de login la opción de CLIENT-CERT. El siguiente es un ejemplo de como se debe configurar esa sección:

    <login-config>
    <auth-method>CLIENT-CERT</auth-method>
    </login-config>
  6. Si vamos a integrarnos con ADF, debemos modificar la configuración del dominio de ADF security, la cual radica en el archivo jps-config.xml, es muy importante recalcar que la configuración que se debe modificar es la del dominio, no la que viene con cada una de las aplicaciones.
    Para realizar esta modificación haremos uso de WLST:

    • Ejecutar el archivo $BEA_DOMAIN/bin/setDomainEnv.sh
    • Desplazarnos hacia $WL_SERVER/common/bin y ejecutar el archivo wlst.sh
    • Una vez dentro, nos conectaremos hacia el Admin Node del dominio: connect(‘username’,’password’,’t3://servidor:puerto’);
    • Ya autenticados, agregaremos la configuración de oam, usando la siguiente sintaxis: addOAMSSOProvider(loginuri=”/${app.context}/adfAuthentication”,
      logouturi=”/oamsso/logout.html”);
  7. Debemos hacer que weblogic tome los cambios, para esto reiniciamos las maquinas asociadas al dominio que se configuro, en el caso de un clúster es preciso reiniciar el Admin y los Managed Servers
  8. Finalmente y/o a la par, se debe configurar la capa Web que gestionará las peticiones necesarias. Para ello, montamos un OHS (Oracle HTTP Server) o apache, con el módulo de weblogic (mod_wl_ohs o mod_wl_22) o en su defecto con la configuración del módulo de proxy para reenrutar todas las petciones hacia el servidor de aplicaciones

Con lo anterior, ya tenemos configurado Weblogic y las aplicaciones ADF en nuestro esquema de Oracle Access Manager.

¿Dudas, comentarios, aclaraciones? Estamos para apoyarlos.

Happy Hacking!

—–
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com>

Anuncios

En muchas ocasiones, las aplicaciones web que son protegidas con Oracle Access Manager (AKA OAM), permiten al usuario final de descarga de documentos diferentes a un .txt (TEXTO), ejemplos de estas aplicaciones pueden ser Siebel, OBIEE, etc. Cuando se genera la configuración por default del AccessGate que protege dichos recursos podemos obtener mensajes de error al descargar los documentos como los siguientes:

  • The file cannot be found on server
  • El archivo no se pudo encontrar en el servidor
  • The file doesnt exist
  • … Y similares

Esto debe a como se gestionan dos valores que aunque parezcan insignificantes no lo son:

  • CachePragmaHeader
  • CacheControlHeader

Para entender como afectan estos valores a OAM necesitamos entender la definición del protocolo HTTP definido por la w3c (RFC-2616), en específico necesitamos entender las definiciones de 2 Campos de Encabezado (Header Fields):

  • Cache-Control, Especifícan el comportamiento que impede al caché interferir negativamente con la solicitud o la respuesta. Estas directivas suelen reemplazar los algoritmos de caché por defecto y son unidireccionales, es decir que una directiva en una solicitud no implica que la misma directiva se dé en la respuesta.
    Las directivas de control de cache se pueden dividir en las siguientes categorias:

    • Restricciones de que es cacheable, las cuales solo pueden imponerse por el servidor que origina las respuestas. Los posibles valores a usar son:
      • no-cache
      • public
      • private
    • Restricciones de lo que se puede guardar en cache, este puede establecerse por el cliente o el servidor:
      • no-store
    • Modificaciones al mecanismo de expiración. Los posibles valores a usar son:
      • max-age
      • s-maxage
    • Controles sobre la recarga o revalidación del cache, solo pueden establecerse por el agente cliente y sus posibles valores son:
      • must-revalidate
      • proxy-revalidate
    • Controles sobre las entidades de transformación del cache
      • no-transform
    • Diferentes extensiones al manejo del cache
  • Pragma, se utiliza para incluir directivas específicas de la implementación que podrían aplicarse a cualquier destinatario a lo largo de las peticiones y/o respuestas. Tiene las mismas opciones que las directiva cache-control en la sección referente a lo que es cacheable

En base a lo anterior podemos darnos cuenta que existen tres diferentes valores que afectan directamente el comportamiento de la descarga de documentos para el OAM:

  • public, indica que las respuestas pueden ser cacheadas por cualquier cache, inclusive si normalmente no lo son, o son cacheadas únicamente con el control no-share de la directiva de Autorización
  • private, indica que todo o parte del mensaje de respuesta esta dirigido a un usuario y por lo tanto no debe ser cacheado por un caché compartido. El uso de este control solo afecta el cache por lo que no asegura la privacidad del mensaje.
  • no-cache, Indica que el cache no se debe usar en las respuestas para satisfacer subsecuentes peticiones sin una previa validación con el servidor de origen. Esto permite al servidor de origen prevenir el cache aún cuando este ya ha sido configurado para su envío al cliente.

Lo expuesto anteriormente nos permite identificar el porque del error en la descarga de documentos desde recursos protegidos por OAM. Es por ello que según la naturaleza de los archivos se deben usar los controles public o private en las opciones de configuración CacheControlHeader y CachePragmaHeader del AccessGate.

Para más información pueden remitirse al RFC-2616, en la sección 13 y 14 del mismo.

Happy Hacking!

————-
Entrada generada por:
NataS::: The Lord of Chaos
Marcos Ricardo Schejtman Rubio <mschejtman@nekasys.com>