Repositorio híbrido, compuesto por ldap y la base de datos

Contexto

O3 fue integrado-configurado con Active Directory, sin embargo es necesario mantener el usuario admin a fin de crear los cubos pues es el usuario que se encuentra configurado en los archivos SRV pero no podemos probar que la contraseña se mantiene, en la tabla de base de datos está encriptado y desde AdmServer en la opción de Actores no se puede resetear el valor de la contraseña.

Preguntas

Cómo obtenemos la contraseña del usuario admin? Qué usuario se debe utilizar para la configuración de creación de cubos, se mantiene en admin aún cuando se ha integrado con active directory?

Solución

Se adjunta un patch para o3, que permite utilizar un repositorio híbrido, compuesto por ldap y la base de datos. Por lo tanto, el grupo de usuarios se compone por la unión de ambos repositorios.

Algunas consideraciones:
1 - En caso de agregar un usuario, este no puede existir en ldap. En caso que exista, el sistema devuelve la excepción de UnsupportedException
2 - Solo se puede eliminar usuarios almacenados en la base de datos (o sea, el ldap es para operaciones de read-only)
3 - Las búsquedas siempre se realizan sobre ldap primero, y en caso de no encontrar usuario, se busca en la base
4 - De ser posible, evitar que exista el mismo usuario en ambos repositorios. Se probó en ambiente de prueba, y aparece 2 veces en el admserver, aunque el usuario de base de datos obtiene las propiedades que tiene el de ldap.

2 Alternativas al proceso:

1)

  1. Bajar los Servicios
  2. Configurar los archivos necesarios en <o3>\client\rbac\ según : Como definir usuarios de O3 en LDAP y Active Directory y configuracion proporcionada del ldap.
  3. Editar <o3>\O3Server_custom.properties modificando las siguientes propiedades:

    rbac.userRepository = com.ideasoft.rbac.repository.impl.dbjndi.DbJndiUserRepository

    rbac.loginService = com.ideasoft.rbac.repository.impl.dbjndi.DbJndiLoginService

  4. Subir servicios y probar.

2)

  1. Bajar los Servicios
  2. Configurar el archivo O3Server.properties descomentando la parte de RBAC y agregando los datos suministrados para conectarse al ldap
  3. Descomentar y cambiar:
    1. rbac.userRepository = com.ideasoft.rbac.repository.impl.dbjndi.DbJndiUserRepository
    2. rbac.loginService = com.ideasoft.rbac.repository.impl.dbjndi.DbJndiLoginService
  4. Subir servicios y probar.

 

Pasos:

1) Borrar informacion de los usuarios admin e internal si se hubieran generado en el ldap

2) Crear la base de datos y el usuario con permisos en el DBMS para luego utilizar en O3 como parametros de conexion

3) Aplicar "Alternativas"

4) Configurar o3 para que que trabaje con base de datos los usuarios, pero no los cubos (o3.config.dataBase=false en O3Server_custom.properties), configurando el archivo <o3>\jboss\standalone\deployments\O3Server_ds.xml con los parametros de conexion a la base.

5) Configurar liferay en base de datos segun este wiki: Cómo configurar Liferay con Diferentes Bases de Datos

6) Levatar los servicios de jboss y liferay (en esta primera instancia se crearan las tablas correspondientes con información por defecto), probar que se validen los usuarios contra el ldap.