• Seguridad con usuarios/grupos de AD

  • 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.
 #13682  by maurolivero
 
Estimados, les pido su colaboración porque tengo problemas cuando quiero dar seguridad a carpetas usando mis usuarios y grupos de Active Directory. Para ir comenzando les paso a detallar mi estructura de AD:

Dominio
I___ Mic1
I____ Usuario 1
I____Usuario 2
I___ Mic2
I___Mic3
I___OpenKM
I______AdminRole (grupo)
I______UserRole (grupo)
I______ okmadmin (usuario que pertenece al grupo AdminRole y UserRole

En openkm me puedo loguear con todos los usuarios del active directory que se encuentren en el grupo UserRole y AdminRole. Cuando doy seguridad a una carpeta me muestra todos los grupos del ActiveDirectory y todos los usuarios que pertenecen al grupo UserRole pero cuando los asigno no funciona, paso a detallar las pruebas que realicé:

Asignando seguridad por grupo

Grupo creado dentro de OU OpenKM con un usuario creado en la misma ubicación -> Funciona Perfecto
Grupo creado en OU OpenKM con usuario creado en OU micron -> no funciona
Grupo creado en Micron Con Usuario creado en micron -> No funciona
Grupo creado en Micron con usuario creado en OpenKM -> No Funciona

Asignando Seguridad por usuario no funciona de ninguna manera

Detallo por si lo necesitan mi configuración:
Code: Select all
principal.ldap.server = ldap://10.1.1.253      
principal.adapter = com.openkm.principal.LdapPrincipalAdapter  
principal.ldap.security.principal = CN=okmadmin,OU=OpenKM,dc=dominio,dc=local  
principal.ldap.security.credentials = admin 
principal.ldap.user.search.base = dc=dominio,dc=local       
principal.ldap.user.search.filter = (&(objectclass=person)(memberOf=cn=UserRole,ou=OpenKM,dc=dominio,dc=local))     
principal.ldap.user.attribute = cn 
principal.ldap.roles.by.user.attribute = memberOf       
principal.ldap.roles.by.user.search.base = dc=dominio,dc=local       
principal.ldap.roles.by.user.search.filter = (&(objectClass=person)(cn={0})) 
principal.ldap.mail.attribute =mail       
principal.ldap.mail.search.base = dc=dominio,dc=local       
principal.ldap.mail.search.filter = (&(objectclass=person)(cn={0})) 
principal.ldap.users.by.role.attribute = member       
principal.ldap.users.by.role.search.base = dc=micronsa,dc=local       
principal.ldap.users.by.role.search.filter = (&(objectClass=group)(cn={0}))
principal.ldap.role.attribute = cn       
principal.ldap.role.search.base = dc=dominio,dc=local       
principal.ldap.role.search.filter = (objectclass=group)    
principal.ldap.referral String follow
desde ya muchas gracias
 #13710  by jllort
 
Entiendo que con los usuarios te puedes logear, pero que después al poner la seguridad da un error de autentificación, es eso ?

Hazme una captura de pantalla de un usuario ( con UserRole ) que te este dando problemas, viendo la seguridad que tiene para una carpeta en concreto y comentando exactamente lo que crees que debería hacer y lo que hace en realidad.
 #13730  by maurolivero
 
Buenas

En mi post inicial no fuí muy claro, OKM no me tira ningún error, solo que si a un usuario le doy permiso para ver una carpeta este nunca la ve cuando ingresa al sistema, pero no me da error.

por ejemplo el usuario amec pertenece al grupo userrole ingresa al sistema bien pero no puede ver la carpeta a la que el administrador le dió permiso

por ejemplo:

supongamos que tengamos la siguiente estructura dentro de okm

okmroot (los permisos de esta carpeta son: UserRole Leer, escribir, borrar; System lectura, escritura, seguridad)
|
|_ Prueba (los permisos de esta carpeta son: amec leer, escribir, borrar, seguridad)

Cuando amec ingresa al sistema, no ve la carpeta prueba pero no le da errores. amec es un usuario del dominio que se encuentra dentro de la ou OpenKM.
Cuando la seguridad es otorgada por grupo solo funciona si el grupo y el usuario (que pertenece al grupo) se encuentra dentro de la ou UserRole Ej:

okmroot (los permisos de esta carpeta son: UserRole Leer, escribir, borrar; System lectura, escritura, seguridad)
|
|_ Prueba (los permisos de esta carpeta son: grupoprueba leer, escribir, borrar, seguridad)

en el ejemplo anterior todos los usuarios del grupoprueba que pertenecen a la ou OpenKM donde pertenece grupoprueba pueden ver la carpeta, si en grupo prueba hay un usuario que pertenece a otra ou no la puede ver

Cualquier otro dato solo pidanlo, gracias
 #13751  by pavila
 
Qué versión de OpenKM usas? Puedes reproducir este misma situación con la configuración por defecto, o sea, usuario en base de datos en lugar de LDAP? Es un poco raro lo que te pasa.

Si vas a Administración -> Usuarios, qué sale en el listado?
 #13758  by maurolivero
 
Buenas:

Estoy usando la Version: 5.1.8 (build: 7363) de open KM, el el menú usuarios dentro de administración, me muestra los usuarios del active directory que pertenecen al grupo UserRole pero como detalle noto que estos usuarios a diferencia de los creados en db no tienen asignados ningún rol. con los usuarios de la db anda perfecto.

Gracias
 #13788  by jllort
 
Postea el login-config.xml que lo tienes mal, me estoy imaginando que tienes como default role el UserRole algo asi
Code: Select all
<module-option name="defaultRole">UserRole</module-option>
Si este es el caso, ya lo puedes quitar, por que no tienes que dar por defecto ningun role a un usuario definido en el ldap.

los roles los tienes distribuidos en un solo nodo ( concentrados ) o estan dispersos en varios sitios ?
 #13957  by maurolivero
 
Hola Jllort, estuve ausente por un tiempo pero ya retomando con el problema. Te posteo el login-config.xml
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://10.1.1.253</module-option>
      <module-option name="bindDN">CN=okmadmin,OU=OpenKM,dc=mi_dominio,dc=local</module-option>
      <module-option name="java.naming.referral">follow</module-option>
      <module-option name="java.naming.security.authentication">simple</module-option>
      <module-option name="bindCredential">admin</module-option>
      <module-option name="baseCtxDN">dc=mi_dominio,dc=local</module-option>
      <module-option name="baseFilter">(&(sAMAccountName={0})(objectClass=user))</module-option>
      <module-option name="rolesCtxDN">OU=OpenKM,dc=mi_dominio,dc=local</module-option>
      <module-option name="roleFilter">(member={1})</module-option>
      <module-option name="roleAttributeID">cn</module-option>
      <module-option name="roleAttributeIsDN">false</module-option>
      <module-option name="roleRecursion">2</module-option>
      <module-option name="searchScope">SUBTREE_SCOPE</module-option>
      <module-option name="allowEmptyPasswords">false</module-option>
    </login-module>
  </authentication>
</application-policy>

Los roles se encuentran en un solo nodo, te referis a que si todo mi controlador de dominio esta en un solo nodo?. Si es asi te confirmo que lo tengo en uno solo.
Saludos
 #14014  by maurolivero
 
Gracias Jllort, pero no entiendo lo que deberia agregar para capturar los roles...
Por otro lado te comento que sigo probando a ver si podemos dar en la tecla justa. Vamos a suponer que tengo 2 usuarios (oliverom y sfiliol) ambos pertenecen al grupo UserRole (creado en Active directory como grupo de seguridad global). Ahora bien, yo creo una carpeta en okm:root de oliverom por ejemplo que se llama Andrés. Luego en la solapa de Seguridad de la misma le doy permiso a sfiliol para que pueda editar. De esta forma la carpeta cuando me logeo al sistema como sfiliol no aparece...
Pero ahora si creo la misma carpeta y le asigno seguridad al grupo UserRole y le doy permiso de escritura vemos que la carpeta si aparece en el usuario y con los permisos correspondientes asignados...
Talves con este mejor detalle del problema podemos encontrarle la solucion.
Desde ya muchas gracias por tu tiempo.
Saludos
 #14033  by jllort
 
1- Olvídate del UserRole directamente, no lo tienes que propagar por el repositorio.
2- Tienes que conseguir que los listados de roles te aparezcan en la seguridad.
3- Tienes que conseguir que al usuario le aparezcan los roles que tiene asociado.

El punto 2-3 son esenciales, entiendo que el login ya te lo esta haciendo bien.

Te aconsejo utilizar el apache ldap studio y ir jugando con las consultas ... eso te ayudará enormemente a entender lo que esta pasando si las consultas no te funcionane en el apache ldap studio tampoco te funcionaran con OpenKM y perderas menos el tiempo

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.