Page 1 of 1

Autenticar con Active Directory

PostPosted:Fri Apr 17, 2015 8:40 pm
by fjleon
saludos, estoy tratando también de integrar openkm con active directory siguiendo los pasos de la guia http://wiki.openkm.com/index.php/Active ... OpenKM_5.1

En login-config.xml coloqué lo siguiente:
Code: Select all
<!-- OpenKM -->
<application-policy name = "OpenKM">
   <authentication> 
     <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" > 
        <module-option name="java.naming.provider.url">ldap://IPACTIVEDIRECTORY</module-option> 
        <module-option name="bindDN">CN=CUENTAADMINISTRADOR,CN=users,dc=DOMINIO,dc=COM</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">MICLAVE</module-option> 
        <module-option name="baseCtxDN">dc=DOMINIO,dc=COM</module-option> 
        <module-option name="baseFilter">(&(sAMAccountName={0})(objectClass=user))</module-option> 
        <module-option name="rolesCtxDN">dc=DOMINIO,dc=COM</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>
Y luego edite las propiedades de configuracion:
Code: Select all
system.login.lowercase=on
principal.adapter=com.openkm.principal.LdapPrincipalAdapter
 
principal.ldap.server=ldap://ACTIVEDIRECTORY
principal.ldap.security.principal=CN=USUARIOADMINISTRADOR,cn=users,dc=DOMINIO,dc=COM
principal.ldap.security.credentials=CLAVE
 
principal.ldap.user.search.base=dc=DOMINIO,dc=COM
principal.ldap.user.search.filter=(objectclass=person)
principal.ldap.user.attribute=sAMAccountName
 
principal.ldap.role.search.base=dc=DOMINIO,dc=COM
principal.ldap.role.search.filter=(objectclass=group)
principal.ldap.role.attribute=cn
 
principal.ldap.mail.search.base=dc=DOMINIO,dc=COM
principal.ldap.mail.search.filter=(&(objectclass=person)(sAMAccountName={0}))
principal.ldap.mail.attribute=mail
 
principal.ldap.username.search.base=dc=DOMINIO,dc=COM
principal.ldap.username.search.filter=(&(objectclass=person)(sAMAccountName={0}))
principal.ldap.username.attribute=cn
 
principal.ldap.users.by.role.search.base=dc=DOMINIO,dc=COM
principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0}))
principal.ldap.users.by.role.attribute=member
 
principal.ldap.roles.by.user.search.base=dc=DOMINIO,dc=COM
principal.ldap.roles.by.user.search.filter=(&(objectClass=person)(sAMAccountName={0}))
principal.ldap.roles.by.user.attribute=memberOf
 
principal.ldap.referral=follow
Sin embargo al reiniciar no me acepta ningún login ni veo errores en la consola

Re: Autenticar con Active Directory

PostPosted:Sat Apr 18, 2015 11:32 am
by jllort
Estas mirando la página de la wiki que no toca ( espero que cuando hayamos rehecho toda la documentación os ayude a localizar mejor la información )
La página que te interesa en realidad es esta de aquí.
http://wiki.openkm.com/index.php/Ldap-example3 ( otros ejemplos http://wiki.openkm.com/index.php/LDAP_examples )

Primer paso deja el OpenKM.xml como lo tenías antes. Te logeas normalmente contra la base de datos y primero cambia los parametros de configuracion internos ( acuerdate que después de cambiar el principal adapter tienes que reiniciar ).

El primer parametros que tienes que configurar es la url del servidor y las credenciales. El segundo es este de aqui:
Code: Select all
principal.ldap.user.search.base=dc=DOMINIO,dc=COM
principal.ldap.user.search.filter=(objectclass=person)
principal.ldap.user.attribute=sAMAccountName
En este punto ya deberías ver los listados de los usuarios. En caso contrario comprueba que este bien escrito etc.... sino mira el catalina.log a ver si hay algun error. Igual tienes que hacer esto http://wiki.openkm.com/index.php/Troubl ... _with_LDAP

Re: Autenticar con Active Directory

PostPosted:Thu Apr 23, 2015 12:31 pm
by fjleon
Tengo dudas sobre los ejemplos y sobre tu explicación.

Primero debo hacer los cambios dentro de la aplicación ? O sea, los principal.ldap... en la parte de administración? Luego tumbo la aplicación, edito el openkm.xml y vuelvo a arrancar?

Aparte, nosotros no tenemos grupos userRole ni userAdmin ni grupos openkm en el active directory y preferimos no tener que tocar ese servidor. El 95% de los usuarios de openkm por base de datos están en userRole. Cómo se tendría que configurar para que deje hacer login a todo el mundo?

Preferimos que en caso de tener que modificar algo como administrador se haga desde la cuenta local okmAdmin

Anexo un ejemplo de la jerarquía de nuestro active directory
Los usuarios de la oficina principal están en:
Code: Select all
OU=Oficina,OU=CORP,DC=seguroscatatumbo,DC=com
Debajo de Oficina están muchos OU de los distintos departamentos

Y los de las sucursales están en:
Code: Select all
OU=Sucursales,OU=CORP,DC=seguroscatatumbo,DC=com
Debajo de Sucursales están muchos OU de las distintas sucursales

Re: Autenticar con Active Directory

PostPosted:Sat Apr 25, 2015 8:11 am
by jllort
A ver, los usuarios y roles o te los pilla todos de base de datos ( la de openkm ) o te los pilla todos del AD, no hay una integración mixta de los usuarios me los coge del AD pero los roles los tengo definidos en el openkm. Nosotros hacemos una integración completa y el control del AD es total.

Sobre como realizar la integración, lo suyo es no modificar nada del OpenKM hasta que los parametros que estan en la administración sean correctos. Lo suyo es cambiar el principal.adapter por el del ldap, reiniciar ( sin cambiar el OpenKM.xml -> continuando autentificando por base de datso ) y trabajar con la configuración desde la administración.

Vas a tener que crear dos roles en el AD el ROLE_ADMIN y el ROLE_USER y asignarselo a los usuarios ( piensa que lo que tienes ahora en las tablas de openkm de alguna forma lo estarás sacando del AD ).