Page 1 of 1

Seguridad con usuarios/grupos de AD

PostPosted:Sat Jan 28, 2012 2:35 am
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

Re: Seguridad con usuarios/grupos de AD

PostPosted:Tue Jan 31, 2012 10:42 am
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.

Re: Seguridad con usuarios/grupos de AD

PostPosted:Wed Feb 01, 2012 10:28 am
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

Re: Seguridad con usuarios/grupos de AD

PostPosted:Thu Feb 02, 2012 8:32 am
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?

Re: Seguridad con usuarios/grupos de AD

PostPosted:Thu Feb 02, 2012 10:16 am
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

Re: Seguridad con usuarios/grupos de AD

PostPosted:Fri Feb 03, 2012 8:11 pm
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 ?

Re: Seguridad con usuarios/grupos de AD

PostPosted:Mon Feb 13, 2012 12:27 pm
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

Re: Seguridad con usuarios/grupos de AD

PostPosted:Tue Feb 14, 2012 7:30 am
by jllort
Y has definido en OU=OpenKM,dc=mi_dominio,dc=local los roles UserRole y AdminRole y los has asignado oportunamente a los usuarios.

Haz lo que te pone en esta url para ver si realmente estas capturando los roles como toca
http://wiki.openkm.com/index.php/Debugg ... figuration

Re: Seguridad con usuarios/grupos de AD

PostPosted:Thu Feb 16, 2012 12:49 pm
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

Re: Seguridad con usuarios/grupos de AD

PostPosted:Fri Feb 17, 2012 12:05 pm
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