• Problema JBOSS LDAP

  • OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #17161  by agm
 
Hola,

Estoy intentando autenticar OpenKM contra LDAP pero me está siendo imposible lograr que el JBoss me deje pasar. Mi configuración es la siguiente
Code: Select all
    <application-policy name="OpenKM">
       <authentication>
         <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" >
            <module-option name="java.naming.provider.url">ldap://ldap.test.usb.ve:389</module-option>
            <module-option name="java.naming.security.authentication">simple</module-option>
            <module-option name="bindDN">cn=reader,ou=accounts,ou=Administradores,dc=usb,dc=ve</module-option>
            <module-option name="bindCredential">****</module-option>
            <module-option name="baseCtxDN">ou=Usuarios,dc=usb,dc=ve</module-option>
            <module-option name="baseFilter">(&(objectClass=posixAccount)(shadowFlag=1)(uid={0}))</module-option>
            <module-option name="rolesCtxDN">ou=OpenKM,ou=Aplicaciones,dc=usb,dc=ve</module-option>
            <module-option name="roleFilter">(&(objectclass=posixGroup)(memberUid={0}))</module-option>
            <module-option name="roleAttributeIsDN">false</module-option>
            <module-option name="roleNameAttributeID">cn</module-option>
            <module-option name="roleRecursion">-1</module-option>
            <module-option name="searchScope">SUBTREE_SCOPE</module-option>
            <!-- <module-option name="defaultRole">UserRole</module-option> -->
            <module-option name="allowEmptyPasswords">false</module-option>
         </login-module>
       </authentication>
    </application-policy>
Comenté la opción name="defaultRole", para que no fuerce a todos los usuarios en el rol defaultRole; ya que el principal problema que tenía era que podría autenticarme pero todos los usuarios (sin importar que estuviese en AdminRole o UserRole) caen con el rol UserRole; y jamás podía ver el panel administrativo. Estuve leyendo en el foro que era debido a que tenía activada esa opción y ya no es requerida.

Asimismo coloqué el Jboss en modo debug y descubro que no logra obtener del LDAP mi respectivo rol. Estoy usando la herramienta testLdap.jar y me funciona perfecto (getUsers, getRoles, getRolesByUser, etc), pero claro, esta herramienta va contra el OpenKM.cfg y no contra el login-config.xml (el que autentica/chequea primero). En el debug del jboss obtengo:

Principal: agm
Principal: Roles(members)

(notar que no obtiene los correspondientes roles). La estructura de mi LDAP en la definicion de roles es tan simple como:
Code: Select all
dc=usb
   dc=Aplicaciones
      ou=OpenKM
         cn=UserRole, objectClass=posixGroup, memberUid = agm, memberUid = lldiaz
         cn=AdminRole, objectClass=posixGroup, memberUid = martinezm, memberUid = rivasp
      ou=Usuarios
         ......
Saludos
 #17169  by jllort
 
Móntate el apache ldap studio y prueba las queries por que fijo que no estan bien.

Voy a asumir que todos los roles son hijos de ou=OpenKM,ou=Aplicaciones,dc=usb,dc=ve

Algo de esto de aquí debe estar fallando:
Code: Select all
<module-option name="roleFilter">(&(objectclass=posixGroup)(memberUid={0}))</module-option>
<module-option name="roleAttributeIsDN">false</module-option>
<module-option name="roleNameAttributeID">cn</module-option>
Hay dos formas de plantear la consulta, de los usuarios cuelgan los roles o a la inversa ( tienes que saber en tu ldap cual de las dos opciones tienes, o si tienes las dos disponibles ) a partir de aquí puedes ir planteando el tipo de consulta.

En la wiki http://wiki.openkm.com/index.php/Active ... OpenKM_5.1 fíjate que se pueden sacar de las dos formas y una no tiene nada que ver con la otra. La consulta que estas haciendo te tiene que funcionar con el apache ldap studio ... yo empezaria a jugar por ahí teniendo en cuenta que este {0} es el id del usuario con el que te has logeado.
 #17193  by agm
 
Problema solucionado, no sé que sucedía. Tiré y tiré flechas hasta que funcionó todo, la parte de los roles quedó así:
Code: Select all
      
            <module-option name="roleAttributeIsDN">false</module-option>
            <module-option name="roleAttributeID">cn</module-option>
            <module-option name="roleNameAttributeID">cn</module-option>
            <module-option name="matchOnUserDN">true</module-option>
            <module-option name="roleRecursion">-1</module-option>
            <module-option name="searchScope">SUBTREE_SCOPE</module-option>
Sin embargo tengo una duda off-topic; supongamos que tengo varios grupos de personas y quiero que cada uno de ellos tenga su rol (para asociarlos a su carpeta grupal). Sin duda alguna debo agregarlos a todos juntos dentro de UserRole (para que el Jboss los deje "pasar") y... ¿dentro del OpenKM agregar esos esos nuevos roles con sus respectivos usuarios? ¿Cómo hago para asignarles a los usuarios que autentica el LDAP determinados profiles que cree? (es complicado porque los usuarios los tengo en el LDAP y no sé como asociar un profile a un usuario, por eso la pregunta es: para un usuario nuevo: ¿debo agregarlo al LDAP en UserRole y luego agregarlo en el OpenKM?). Me surgió la duda al pensar que podría agregar los muchos roles más en el LDAP, pero no sé si sea el camino correcto.

Saludos

Saludos
 #17199  by jllort
 
Si la integración es completa, los usuarios y roles estan todos en el ldap y la antigua configuración en base de datos queda en obsoleta. Si has conseguido autenficiarte ahora te falta trabajar en obtener las listas de usuarios / roles / mails desde el ldap. Modificar el DatabasePrincipalAdapter por el LdapPrincipalAdapter ( esto precisa de reiniciar la aplicación ) etc.... Por lo que nos cuentas estas a medio camino ( solo te has autentificado ) ... ahora te queda el resto. Te quedan unos cuantos parametros de configuración en la administración ( segundo icono por la izquierda ).

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.