cancel
Showing results for 
Search instead for 
Did you mean: 

Guía para autenticar contra Active directory // (V.3.4.c)

alarde
Champ in-the-making
Champ in-the-making
Buenas a todos, después de mi odisea con el Active Directory de Windows, con alfresco y con el Tomcat por fin he conseguido conectar mi red de Active Directory con Alfresco y por lo tanto autentificar los usuarios atacando al AD.

Mi instalación de alfresco está montada sobre un Windows Server 2008 por lo que las rutas que daré serán todas las rutas por defecto que da alfresco para la instalación.

Lo primero que tengo que deciros es que lo único que hay que tocar es el archivo que se llama alfresco-global.properties que se encuentra en la siguiente ruta: C:\Alfresco\tomcat\shared\classes

Así que lo primero que vamos a hacer es ir a esta ruta y abrir en modo edición el archivo alfresco-global.properties

La siguiente configuración no se tiene que copiar y pegar simplemente, ya que hay que añadir datos del ldap y otras cositas que podreis ver. Toda la configuración que voy a poner se tiene que escribir debajo de todo lo que lleva el archivo alfresco-global.properties, no hay que eliminar NADA de ese archivo!!!

Las líneas que estén entre < >, se tendrán que modificar y habrá que eliminar los "< >" inclusive.

Configuración:

Lo primero a realizar es el tipo de autenticación que vamos a utilizar que es la siguiente:

authentication.chain=alfrescoNtlm1:alfrescoNtlm,passthru1Smiley Tongueassthru,ldap1:ldap

Por que las tres?

Está basado en La wiki de alfresco, ldap puede sincronizar por mediación del Active Directory, mientras que el passthru puede hacerlo por mediación del CIFS.

Alfresco NTLM, passthru y ldap configuration para CIFS

ntlm.authentication.sso.enabled=false
ntlm.authentication.authenticateCIFS=false
alfresco.authentication.authenticateCIFS=false
alfresco.authentication.allowGuestLogin=false
passthru.authentication.sso.enabled=false
passthru.authentication.authenticateCIFS=true
ldap.authentication.active=false
ldap.synchronization.active=true

Autenticación del dominio

passthru.authentication.useLocalServer=false
passthru.authentication.domain=
passthru.authentication.servers=<NetBIOS.DOMAIN>\\<Dirección.IP.de.tu.dominio>

Para que ningún desconocido pueda acceder a Alfresco

ntlm.authentication.sso.enables=false
ntlm.authentication.mapUnknownUserToGuest=false

No voy a utilizar FTP

passthru.authentication.authenticateFTP=false

Defino la cuenta de administrador, si vamos a querer más de una se separan por comas ","

passthru.authentication.guestAccess=false
passthru.authentication.defaultAdministratorUserNames=admin
passthru.authentication.connectTimeout=5000
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=TCPIP,NETBIOS

Sincronización con LDAP, hay que definir el timpo de autenticación (simple en mi caso) y el servidor ldap

ldap.authentication.java.naming.security.authentication=simple         //esto habrá que cambiarlo según el caso, borrar este comentario.
ldap.authentication.userNameFormat=%s
ldap.authentication.allowGuestLogin=false
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://<Tu.Dirección.IP.Del.Servidor.Active.Directory>:389
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false

Ahora tendremos que poner la cuenta con privilegios de administración para conectarla con Active Directory

ldap.synchronization.java.naming.security.principal=<NetBIOS>\\<Nombre Admin> //esto habrá que cambiarlo, en mi caso he puesto únicamente: administrador
ldap.synchronization.java.naming.security.credentials=<Admin.password>//esto habrá que cambiarlo
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.groupDifferentialQuery=(&(objectclass=nogroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(&(objectclass=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(& (objectclass=user)(!(modifyTimestamp<\={0})))
ldap.synchronization.groupQuery=(objectclass\=group)

Sincronización por grupo y usuario por dominio

ldap.synchronization.groupSearchBase=cn\=users,dc=<Tu.dominio>,dc=com
ldap.synchronization.userSearchBase=cn\=users,dc=<Tu.dominio>,dc=com

Forma de acceso a Active Directory, no tendremos que cambiar nada

ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss’.0Z’
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=Nogroup
ldap.synchronization.personType=user
ldap.synchronization.groupMemberAttributeName=member
synchronization.synchronizeChangesOnly=true

Configuración CIFS

cifs.disableNativeCode=false
cifs.enabled=true
cifs.serverName=<Servidor.Donde.esta.alfresco>
cifs.domain=<NetBIOS.Domain>
cifs.hostannounce=true
cifs.sessionTimeout=500
cifs.ipv6.enabled=false
cifs.tcpipSMB.port=1445
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
cifs.netBIOSSMB.sessionPort=1139
cifs.WINS.autoDetectEnabled=true

Y ya lo tenemos todo

Ahora solo quedará apagar el servicio del tomcat, el del MySQL y volver a arrancar los dos.

Para el que no sepa cómo hacerlo, simplemente tendrá que ir a "ejecutar" y poner "services.msc", se abrirá una ventana nueva, ahí tenemos que buscar "alfrescoMySQL" y "alfrescoTomcat".

Gracias a todos los que me han ayudado en ESTE post por su incondición ayuda y gracias a andoylang.wordpress.com.

Espero que le pueda servir de ayuda a personas que como yo estamos iniciándonos en este mundillo de alfresco, que tantos quebraderos de cabeza nos dá jeje.

Un saludo!
10 REPLIES 10

josodo
Champ in-the-making
Champ in-the-making
¡Gran trabajo Álex! Seguro que tu investigación ayuda a mucha gente.
"Las cosas se hacen o no se hacen… pero no se intentan" - Yoda -

alarde
Champ in-the-making
Champ in-the-making
Muchas gracias, eso espero, que ayude a gente y que no tenga que pasarse tanto tiempo como lo he pasado yo (:

jubalo
Champ in-the-making
Champ in-the-making
Pero que grande!!!!

Gracias Alarde me has ayudado mucho, llevaba semanas enganchado con este problema en Alfresco, lo estaba poniendo en práctica en mi FCT e iba de cabeza,  grande sosiyo!!!!!!un abrazo de JUBALO

andoni
Champ in-the-making
Champ in-the-making
Muy bueno Alarde, gente como tu hace posible que se siga creyendo en el código abierto!!!!

Ahora no me funciona el CIFS pero bueno, tocará pelear "un poco más" con Alfresco…

Saludos.

latre
Champ in-the-making
Champ in-the-making
Excelente, me funciono la autenticacion con Active directory en windows 2008 Smiley Happy

Muchas gracias por tu tiempo.

cjimenez
Champ in-the-making
Champ in-the-making
Gracias por la configuración!  Smiley Very Happy

vega_ivan
Champ in-the-making
Champ in-the-making
He seguido los pasos segun los mencionan pero me surge una duda. La pantalla de Login cambia de alguna forma? O como valido si esta cargando la conexion al AD.

oskar201
Champ in-the-making
Champ in-the-making
Hola vega.ivan, la mejor forma de verificar que tu configuración con LDAP ha sido exitosa es entrar a Alfresco como administrador y listar todos los usuarios, veras como los usuarios de LDAP han sido traidos a Alfresco, también veras los que tenias previamente creados.
La interfaz de login de Alfresco no cambia en absoluto, luego intenta loguearte con alguno de los usuarios LDAP con su nombre y contraseña definidos previamente en LDAP

Saludos

aguerra
Champ in-the-making
Champ in-the-making
Alarde,

Tremendo post, en lo parsonal me has salvado la vida.
Muchas gracias y extiendo también el agradecimiento a todos los que te colaboraron.

Suerte.