Posts etiquetados ‘SSO’

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

Durante algunos días estuvimos batallando con la integración entre WCI ver. 10.3 (AKA ALUI) con OAM ver. 10.1.4.3 para poder hacer SSO desde la página principal del usuario una vez que este se autenticó contra el ALUI, siendo el repositorio de sincronización de usuarios para el mismo, un Active Directory ver. 2008.
Buscando entre foros, documentación y uno que otro blog por fin pudimos llegar a tan ansiada integración, por lo que a continuación detallamos los pasos necesarios para poder proteger el WCI con políticas de OAM…
A gran escala los siguientes son los pasos que uno debe contemplar para poder integrar WCI con OAM en un esquema de Authenticación por Formulario:

  1. Obviamente tener instalado WCI y OAM
  2. Configurar el SSO para el portal de WCI
  3. Instalar y configurar un OHS que funcione como proxy para el WL donde esta deployado ALUI
  4. Configurar OAM
  5. Reiniciar servicios

Como se puede observar son varios los pasos necesarios, los cuales serán explicados mas a detalle en los próximos puntos. Para ello asumiremos que se tiene conocimiento medio-avanzado en la administración de WCI, OAM, WL entre otras.

Configuración en el ALUI

  • Crear y configurar un Servidor Remoto de Autenticación AD.
    • Establecer un nombre a Autentication Source Category, este nombre se ocupará más adelante
    • En el link “Sincronization” del “Authentication Source”, de los soportes que ofrece el Autenticador elegir: “Sincronization with Authentication Partner
    • De los diferentes partners de Autenticado elegir “SSO Authentication Source”
  • Configurar el SSO para el WCI, para ello:
    • Abrir el archivo $BEA_HOME/alui/settings/configuration.xml y establecer las siguientes líneas:
    • <component name="portal:SystemProperties" type="http://www.plumtree.com/config/component/types/portal/systemproperties">
      <!-- ... -->
      <setting name="ServerName">
      <value xsi:type="xsd:string">proxy.server.webgate</value>
      </setting>
      <setting name="HTTPPort">
      <value xsi:type="xsd:integer">8080</value>
      </setting>
      <setting name="SSOVirtualDirectoryPath">
      <value xsi:type="xsd:string">/portal/</value>
      </setting>
      <!-- ... -->
      </component>

    • Abrir el archivo $BEA_HOME/alui/settings/portal/portalconfig.xml y establecer las siguientes líneas:

    • <!-- ... -->
      <!-- Se establece el valor de 3 para el Netpoint -->
      <setting name="SSOVendor">
      <value xsi:type="xsd:integer">3</value>
      </setting>

      <!-- El dominio de nuestra cookie, este debe coincidir con el que establezcamos en la configuración del WebGate  -->
      <setting name="CookieDomain">
      <value xsi:type="xsd:string">.mi.dominio.orgx</value>
      </setting>
      <setting name="CookiePath">
      <value xsi:type="xsd:string">/</value>
      </setting>

      <!-- Se establece a 1 si queremos que las cookies vayan via SSL, de otra forma lo mantenemos en 0 -->
      <setting name="SSOCookieIsSecure">
      <value xsi:type="xsd:integer">0</value>
      </setting>

      <!-- El siguiente determina si se debe enviar la información de autenticado a los diferentes portlets integrados en el WCI-->
      <setting name="CaptureBasicAuthenticationForPortlets">
      <value xsi:type="xsd:string">1</value>
      </setting>
      <!-- ... -->

Instalación y configuración del WebProxy

  • Descargamos las utilidades de WebTier11g para el SO y arquitectura que dispongamos
  • Durante el proceso de instalación únicamente elegiremos el OHS
  • Editar el archivo de configuración $BEA_HOME/instances/$INSTANCE/config/OHS/$OHS_INSTANCE/mod_wl_ohs.conf el cual maneja el módulo de weblogic para OHS y redireccionar las rutas de los portlets, así como las rutas de inicio hacia el host de weblogic (o clúster según sea el caso), Ej:
  • <Location /Natas>
    SetHandler weblogic-handler
    PathTrim /NataS
    PathPrepend /portal
    WebLogicHost alui.mi.dominio.org
    WebLogicPort 7010
    </Location>

  • Editar el archivo de configuración $BEA_HOME/instances/$INSTANCE/config/OHS/$OHS_INSTANCE/httpd.conf para habilitar y configurar el mod_proxy y redireccionar las rutas del IDC (UCM)
  • <IfModule mod_proxy.c>
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /imageserver http://alui.mi.dominio.org/imageserver
    ProxyPassReverse /imageserver http://alui.mi.dominio.org/imageserver

    ProxyPass /idc http://alui.mi.dominio.org/idc
    ProxyPassReverse /idc http://alui.mi.dominio.org/idc
    </IFModule>

Configuración de OAM

  • Generar el Host Identifier del WebProxy que instalamos anteriormente.
  • Crear la entrada del AccessGate sobre el AccessServer del OAM, como parámetros principales tenemos:
    • Access Management Service: On
    • Primary HTTP Cookie Domain: .mi.dominio.org
    • Preferred HTTP Host: SERVER_NAME
      Este se establece de esa forma si el WebGate esta sobre un servidor que usa VirtualHosts, de otra forma es necesario usar el valor establecido en el Host Identifier
    • Deny On Not Protected: Off
    • CachePragmaHeader: public
      Si el servidor permite descarga de archivos se deben marcar los headers como public.
    • CacheControlHeader: public
  • Generar el esquema de autenticado que usara el ALUI, uno es el “Anonymous” y el otro el que necesitemos
  • Instalar el WebGate en el servidor que se configuro de WebProxy
  • Generar la política de Dominio que protegerá el portal, a continuación se definen los pasos:
    • Establecer un nombre para la política
    • Establecer los recursos que protegerá la política, principalmente protegeremos:
      • /portal
      • /portal/server.pt
    • Generar una Authorization-Rule que permita el acceso a todos (si así es el caso)
    • Generar la Default-Rule para el portal, en esta se establecerá como esquema de Autenticado el Anónimo, ya que el portal es público por default.
      En la Authorization Expression de la Default Rule usaremos la creada en el paso anterior y como Action devolveremos la variable definida en el archivo del ALUI y de donde la obtendrá
    • Generamos una política con las siguientes características:
      • Name: Allow Access
      • Description: Allow Access to Portal
      • Resource Type: http
      • Resource Operation(s): GET,POST
      • Resource: all
      • URL Pattern: {SSOServlet[;!]*,SSOServlet/…/*,SSOServlet}
      • Host Identifiers: all
      • Authentication Rule -> General -> Authentication Scheme: El_Esquema_de_Protección
      • Authentication Rule -> Actions -> On Success: Regresa las variables seteadas con el valor necesitado
    • Activamos las políticas establecidas
    • Reiniciamos servicios del ALUI y WebProxy

    Con esto tenemos un WCI integrado a nuestro OAM.
    Happy Hacking.

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