Integrando OIM ver 9.1.0.2 BP 11 con RSA 7.1

Publicado: noviembre 30, 2010 de Nekasys en OIM, Oracle, Oracle Identity Manager, RSA
Etiquetas:, , , , , , ,

No tiene mucho que salio el conector de OIM (Oracle Identity Manager) para conectarse con RSA ver. 7.1.
Entre las nuevas características, prevalece que ya no se necesita de un Remote Manager en el servidor de RSA para poder gestionar los comandos de aprovisionamiento, esto gracias a que a partir de la version 7.0 de RSA el esquema fue modificado de cliente-servidor a un esquema basado en servicios Web (bendito sea SOA).
Pues bien a continuación se despliegan los pasos necesarios para la integración, en parte porque la documentación esta incompleta, y en parte porque existen diferentes issues cuando se tiene desplegado el OIM en el Weblogic. Para empezar, un acercamiento a las versiones que se usarán en esta entrada:

  • OIM ver. 9.1.0.2 BP 11
  • WebLogic 10.3
  • Oracle Enterprise Linux ver. 5.4
  • RSA Connector: 9.1
  • RSA ver. 7.1
  1. Para empezar es necesario descargar el conector, sin embargo este conector no esta disponible desde la página de Oracle, sino como un parche que se obtiene desde Metalink, el Patch ID es el 9622543.
  2. Instalar el conector desde el la consola de administración web
  3. Seguir todos los pasos de la documentación para conectarse, las modificaciones vienen a continuación
  4. Como parte de los archivos a copiar, es necesario uno denominado wlfullclient.jar, este se genera, instalando el java SDK ver. 1.5 en el servidor de RSA y tecleando los siguientes comandos:
    cd RSA_AM_HOME/appserver/weblogic/server/lib/
    java -jar ../../../modules/com.bea.core.jarbuilder_1.0.0.0.jar -profile wlfullclient
  5. En general esos son los pasos necesarios para poder realizar la conexion con RSA, sin embargo cuando uno realiza una prueba, o inclusive cuando se comienza con la reconciliación de LookUp’s, salga un error de SSL HandShake a pesar de que el certificado de la CA fue dado de alta exitosamente, el error es:
    DEBUG,19 nov 2010 13:26:49,102,[OIMCP.RSAM],oracle.iam.connectors.rsaauthmgr.usermgmt.tasks.RSALookupRecon : init():: STARTED
    DEBUG,19 nov 2010 13:26:49,121,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ITResource : ITResource:: STARTED
    DEBUG,19 nov 2010 13:26:49,146,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ITResource : ITResource : IT Resource Key :4
    DEBUG,19 nov 2010 13:26:49,165,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ITResource : ITResource:: FINISHED
    DEBUG,19 nov 2010 13:26:49,182,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : OIMUtil():: STARTED
    DEBUG,19 nov 2010 13:26:49,264,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : OIMUtil():: FINISHED
    DEBUG,19 nov 2010 13:26:49,266,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: STARTED
    DEBUG,19 nov 2010 13:26:49,266,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap() : LookUpName : Lookup.RSA.AuthManager.Configuration
    DEBUG,19 nov 2010 13:26:49,280,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: FINISHED
    DEBUG,19 nov 2010 13:26:49,280,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: STARTED
    DEBUG,19 nov 2010 13:26:49,280,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap() : LookUpName : Lookup.RSA.AuthManager.LookupReconMapping
    DEBUG,19 nov 2010 13:26:49,288,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: FINISHED
    DEBUG,19 nov 2010 13:26:49,288,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: STARTED
    DEBUG,19 nov 2010 13:26:49,288,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap() : LookUpName : Lookup.RSA.AuthManager.Constants
    DEBUG,19 nov 2010 13:26:49,296,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: FINISHED
    DEBUG,19 nov 2010 13:26:49,296,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: STARTED
    DEBUG,19 nov 2010 13:26:49,296,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap() : LookUpName : Lookup.RSA.AuthManager.ITResourceMapping
    DEBUG,19 nov 2010 13:26:49,303,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getLookUpMap():: FINISHED
    DEBUG,19 nov 2010 13:26:49,306,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : getScheduledTaskDetails():: STARTED
    DEBUG,19 nov 2010 13:26:49,315,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : getScheduleTaskKey():: STARTED
    DEBUG,19 nov 2010 13:26:49,322,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : getScheduleTaskKey():: FINISHED
    DEBUG,19 nov 2010 13:26:49,334,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : getScheduledTaskDetails():: FINISHED
    DEBUG,19 nov 2010 13:26:49,336,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : validateMandatoryTaskAttrs():: STARTED
    DEBUG,19 nov 2010 13:26:49,337,[OIMCP.RSAM],oracle.iam.connectors.common.vo.ScheduledTask : validateMandatoryTaskAttrs():: FINISHED
    DEBUG,19 nov 2010 13:26:49,338,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getITResourceKey():: STARTED
    DEBUG,19 nov 2010 13:26:49,338,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getITResourceKey() : ITResource Name = RSA Server Instance
    DEBUG,19 nov 2010 13:26:49,348,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getITResourceKey() : tcresultSet.getRowCount() = 1
    DEBUG,19 nov 2010 13:26:49,348,[OIMCP.RSAM],oracle.iam.connectors.common.dao.OIMUtil : getITResourceKey():: FINISHED
    DEBUG,19 nov 2010 13:26:50,521,[OIMCP.RSAM],oracle.iam.connectors.rsaauthmgr.common.connection.RSAConnection : createConnection() : CommandTarget initialized...
    ERROR,19 nov 2010 13:26:53,222,[OIMCP.RSAM],====================================================
    ERROR,19 nov 2010 13:26:53,222,[OIMCP.RSAM],oracle.iam.connectors.rsaauthmgr.common.connection.RSAConnection : createConnection() : javax.net.ssl.SSLException: Received fatal a
    lert: bad_record_mac
    ERROR,19 nov 2010 13:26:53,222,[OIMCP.RSAM],====================================================

    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],================= Start Stack Trace =======================
    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],oracle.iam.connectors.rsaauthmgr.common.connection.RSAConnection : createConnection()
    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],Description : javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],com.rsa.common.SystemException: javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
    at com.rsa.webservice.SOAPCommandTarget.remoteMethod
    (SOAPCommandTarget.java:198)
    at com.rsa.webservice.SOAPCommandTarget.executeCommand
    (SOAPCommandTarget.java:136)
    at com.rsa.command.TargetableCommand.execute
    (TargetableCommand.java:237)
    at com.rsa.authn.LoginCommand.execute
    (LoginCommand.java:591)
    at com.rsa.command.ConnectionFactory$AuthenticatedTarget.login
    (ConnectionFactory.java:641)
    at com.rsa.command.ConnectionFactory$ConnectionImpl.connect
    (ConnectionFactory.java:827)
    at com.rsa.command.ConnectionFactory$ConnectionImpl.connect
    (ConnectionFactory.java:809)
    at oracle.iam.connectors.rsaauthmgr.common.connection.RSAConnection.createConnection
    (Unknown Source)
    at oracle.iam.connectors.rsaauthmgr.usermgmt.tasks.RSALookupRecon.execute
    (Unknown Source)
    at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run
    (Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run
    (Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs
    (AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs
    (Unknown Source)
    at weblogic.security.Security.runAs
    (Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs
    (Unknown Source)
    at com.thortech.xl.scheduler.core.quartz.QuartzWrapper.execute
    (Unknown Source)
    at org.quartz.core.JobRunShell.run
    (JobRunShell.java:178)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run
    (SimpleThreadPool.java:477)
    Caused by: javax.net.ssl.SSLException: Received fatal alert: bad_record_mac
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0
    (Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance
    (NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
    (DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance
    (Constructor.java:513)
    at com.rsa.webservice.SOAPCommandTarget.remoteMethod
    (SOAPCommandTarget.java:182)
    ... 17 more

    ERROR,19 nov 2010 13:26:53,224,[OIMCP.RSAM],================= End Stack Trace =======================

  6. Para habilitar el debug de SSL y ver con mas detalle el error es necesario incluir la siguiente linea en el arranque del servidor que gestiona el nodo del OIM: -Djavax.net.debug=ssl
  7. El error se da puesto que el servidor de RSA reinicializa la conexión. Para solucionarlo debemos recordar un par de conceptos referentes a la JSSE y que tienen que ver con el apego al RFC-5746.
  8. La solución consiste en establecer el modo de comunicación del WebLogic hacia Legacy, para ello se deben settear los siguientes parametros en el arranque de WebLogic:

    -Dhttps.protocols=SSLv3,TLSv1
    -Dsun.security.ssl.allowLegacyHelloMessages=true
    -Dsun.security.ssl.allowUnsafeRenegotiation=true
  9. La desventaja de esta solución es que la comunicación entre ambos servidores es propensa a un ataque de MITM, pero de momento es la solución al error de bad_record_mac
  10. Finalmente solo es necesario reiniciar el servidor donde esta deployado el OIM

La solución de JSSE, es extensible hacia cualquier comunicación entre servidores que reinicialice las conexiones SSLv3 o TLSv1.

Dudas y/o comentarios son bienvenidos.

Happy Hacking!

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

comentarios
  1. […] Actualizados : Integrando OIM ver 9.1.0.2 BP 11 con RSA 7.1 Instalando Oracle WebPass en OEL 5.4 + Apache […]

Deja un comentario