• Login con LDAP (Active Directory)

  • 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.
 #7102  by smonti
 
Bueno, otro que se esá pegando con LDAP, para autenticacion (en principio). Estoy mirando todos los mensajes del foro relacionados y probando un montón de variaciones en el login-config.xml, pero nada, da error de autenticacion. Estoy mirado incluso en los foros de jboss sin éxito (aunque parece que hay variadas fomas de conseguir esto). Ojalá pudiera mirar en el manual (a ver si me autorizan a suscribirme).
El caso es que tampoco me da pistas de por qué no va, pues en el \server\default\log\server.log no aparece nada. No se si es que hay que ponerle más nivel de debug (no encuentro como) o debo mirar en otro sitio. Antes de empezar a poneros mi configuracion y eso, me gustaría ver esto del log.
Gracias anticipadas.
 #7108  by jllort
 
Primero decirte que esto no es fácil, incluso con manual y todo requiere tener unos conocimiento mínimos de como esta montado el repositorio de ldap ( active directory ) que normalmente no se tienen y que se adquieren al configurar el invento. Normalmente nosotros necesitamos 1-2 horas para configurar un invento de estos ( y en teoria sabemos lo que hacemos ) o sea que la receta inicial es "paciencia".

lo que tienes que hacer es modificar el jboss-log4j.xml
Code: Select all
<category name="org.jboss.security">
     <priority value="DEBUG" />
</category>
Lo de tener acceso a toda la documentación te saldrá rentable, por que fijo que le vas a hechar horas y allí lo complicado está puesto fácil ( entendiendo fácil por lo más fácil posible, dado que en esto del active directory cada administrador se lo monta como le parece ... una recomendación; que usuarios y roles cuelguen del mismo nodo, esto te facilitará mucho la vida ).

Mientras puedes buscar en este foro ... alguna cosa hay sobre el login-config.xml y ldap así como en google por jboss ldap
 #7115  by smonti
 
Muchas gracias por contestar. Al final lo conseguí a medias. Parece ser que le molestaba esta línea del encabezado
Code: Select all
<!DOCTYPE policy PUBLIC
      "-//JBoss//DTD JBOSS Security Config 3.0//EN"
      "http://www.jboss.org/j2ee/dtd/security_config.dtd">
Lo único que hice fue sustituir la política de aplicación OpenKM que viene por defecto por la de LDAP, dejando todo lo demás, y no se si es correcto y habría que dejar solo esa.

Al entrar daba también errores al cargar taxonomía y demás, y era porque en el OpenKM.cfg puse
Code: Select all
principal.adapter=es.git.openkm.principal.LdapPrincipalAdapter
en lugar de
Code: Select all
principal.adapter=com.openkm.principal.LdapPrincipalAdapter
Voy a ver si pulo el tema de los accesos, con los grupos AdminRole, etc. y luego sigo con las autorizaciones sobre carpetas documentos, etc.
Lamentablemente mi AD no está así y tengo demasiadas cosas montadas como para cambiarlo. Ya me he pegado en otras ocasiones con LDAP, al final acabaré entendiéndolo :shock:
Estoy de acuerdo contigo en que saldrá rentable, pero... Una pregunta, ¿es fácil darse de baja de la suscripción? Igual cuela pagar el primer año y, si realmente les gusta, luego seguir.

Saludos.
 #7121  by jllort
 
La renovación es un tema voluntario, vamos pagas 30 euros al año, no es precisamente una fortuna, es algo mas simbólico que no otra cosa.

Si tienes una estructura de ldap con varias ramas etc... entonces la única solucion que tienes es crearte tu propia clase de ldapPrincipalAdapter, para eso mira en la wiki.openkm.com como configurar el entorno de desarrollo ( no es complicado )
 #7133  by smonti
 
Sí, está claro. Es más que aquí son reacios a pagar nada por internet, y cada vez te las ves y te las deseas. Encima, el tema de Paypal lo ven menos claro todavía (las tarjetas estan a nombre de los directivos, etc)... pero estoy en ello (¡y lo conseguiré! :mrgreen: )
Mientras investigaré lo de la clase.
Muchas gracias.
 #7154  by jllort
 
Tambien admitimos transferencias bancarias, pero vamos esto en casos ya estremos. Por que sinceramente el pago por internet ya es un proceso automático, mientras que por otras vias tenemos mas lio para el alta. Para esto mejor contacta con nostros en www.openkm.com/Contact
 #7185  by smonti
 
Bueno, estoy en ello. A ver si lo consigo. Si no, ya os contacto para que me deis datos de cuenta y demás. Gracias.
 #7201  by smonti
 
Bueno, ya está pagado. Esperando login...
De todas formas ya he conseguido entrar con usuario y contraseña del dominio, ver usuarios y roles, y asignarlos a carpetas y archivos, pero cuando busco los usuarios de un rol (en administracion), no sale ninguno.
En fin, no me acaba de gustar cómo va. Tengo que investigarlo más para entenderlo y dejarlo fino.
 #7207  by jllort
 
prueba con
Code: Select all
principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0}))
principal.ldap.roles.by.user.search.filter=(&(objectClass=group)(cn={0}))
y si estas en windows es importante ( que todos los usuarios se logeen en minuscula, por que windows no hace distinciones y eso genera lio despues ):
system.login.lowercase=on
 #7214  by smonti
 
No, con eso, cuando selecciono un grupo/role del desplegable, me sale en el listado ese mismo role (como si fuera un usuario).
No he conseguido hacer funcionar lo de restringir los usuarios que pueden entrar con los roles UserRole y AdminRole. No me importa mucho si funciona la seguridad de carpetas/archivos pero ¿hay que tener en el AD esos roles igualmente?
Yo tengo organizados todos los usuarios en unidades organizativas y grupos (que se llaman igual), según departamento (algo asi como un organigrama). Cada grupo/role y conjunto de usuarios cuelga de su OU. De esta forma, al configurar el login-config.xml para hacer una busqueda recursiva total, me los trae todos (por cierto, ¿ese archivo no era solo para validar el usuario?)
Sin embargo, en el listado de usuarios muestra como id el cn, en Name com.openkm.principal.LdapPrincipalAdapter, Roles está blanco y mail solo muestra las direcciones de correo de los usuarios que están en el primer nivel. Me parece que al final sí que voy a tener que 'tocar' la clase (¿dónde decías que se explicaba?)
Aquí va mi configuracion:
Code: Select all
				
<module-option name="baseCtxDN">OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com</module-option>
<module-option name="baseFilter">(sAMAccountName={0})</module-option>
<module-option name="matchOnUserDN">false</module-option>
				
<module-option name="rolesCtxDN">OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com</module-option>
<module-option name="roleFilter">(member={1})</module-option>
<module-option name="roleAttributeIsDN">true</module-option>
<module-option name="roleAttributeID">memberOf</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> 
Code: Select all
principal.ldap.user.search.base=OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com
principal.ldap.user.search.filter=(objectclass=person)
#principal.ldap.user.search.filter=(&(objectclass=user)(memberOf=CN=UserRole,OU=OpenKM,OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com))
principal.ldap.user.attribute=cn
principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0}))

principal.ldap.role.search.base=OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com
principal.ldap.role.search.filter=(objectclass=group)
#principal.ldap.role.search.filter=(&(objectclass=group)(memberOf=CN=OpenKM,OU=OpenKM,OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com))
principal.ldap.role.attribute=cn
principal.ldap.roles.by.user.search.filter=(&(objectClass=group)(cn={0}))

principal.ldap.mail.search.base=cn={0},OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com
principal.ldap.mail.search.filter=(objectclass=person)
principal.ldap.mail.attribute=mail
system.login.lowercase=on
Ah, ya me he de cuenta de lo de las mayusculas, y algo he leido.
 #7216  by jllort
 
Esto del ldap es complicado. Lo suyo como te dije, para que todo sea mas facil es que usuarios y roles cuelguen del mismo nodo de la rama.

Si quieres crear la clase te interesa:
http://wiki.openkm.com/index.php/OpenKM_authentication

Y tambien la guia de desarrollo
http://wiki.openkm.com/index.php/Developer_Guide
 #7218  by smonti
 
SÏ, ya lo estoy viendo. Aclárame esto si lo sabes, ¿son necesarios los roles AdminRole y UserRole en el AD si no quieres restringir? ¿Pinta algo el archivo login-config.xml a la hora de ver usuarios y grupos dentro del OKM?
Voy a pegarle un vistazo a lo de la clase.
Saludos.
 #7220  by jllort
 
A ver UserRole y AdminRole son necesarios para que el gestor documental tenga el grant de connect. Sin uno de estos dos roles tendras un 403, meter un default Role en el fichero de login-config.xml no es bueno .. si tienes eso ya sabes por que ahora te esta obteniendo el grant, cualquier usuario en el AD accederia, cosa que no es "exactamente" lo que normalmente se quiere.
 #7231  by smonti
 
Nada, quitando defaultRole, no entro ni yo. Tengo un problema con la obtención de los roles de los usuarios (por separado sí que salen, pero no relacionados). Tengo que hacer más pruebas.

Le he pegado un vistazo al código porque me di cuenta de que a la hora de buscar las direcciones de correo, no hacía la recursion. He mirado la clase y me da la impresión de que por defecto, siempre busca en todo el subarbol, porque dentro de ldapSearch aparece
Code: Select all
			searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
(Bueno. No se si esto ya debería consultarlo en otro lado...)

Eso sí, solo aparecen direcciones cuando pongo
Code: Select all
principal.ldap.mail.search.base=cn={0},OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com
en lugar de
Code: Select all
principal.ldap.mail.search.base=OU=MARVAL,OU=Usuarios,DC=marvalsa,DC=com // quitando cn={0},

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.