cancel
Showing results for 
Search instead for 
Did you mean: 

Error al autenticar mediante CIFS usuarios de Active Directory Alfresco

sergiorg96
Confirmed Champ
Confirmed Champ

Buenas a todos,

Tengo instalado en una máquina con Debian 9.5 Alfresco, y tengo configurado la sincronización con Active Directory en un Windows Server 2012 R2. La sincronización con AD se realiza correctamente y puedo logearme con los usuarios a través de la web. Cuando quiero acceder mediante CIFS \\172.16.103.23\alfresco , no me permite autenticarme con los usuarios de Active Directory. En alfresco.log me aparece los siguientes logs:

ERROR [org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator] [AlfJLANWorker8] org.alfresco.jlan.smb.SMBException: Invalid parameter

He intentado activar los logs en modo DEBUG en el archivo de log4j.properties pero no aparecen mensajes de DEBUG, siguen apareciendo los mismos.

He habilitado en el Windows Server 2012 R2 la opción de NTML v2 en el dominio que he visto en otro post:

https://community.alfresco.com/thread/210502-alfresco-50b-community-cifs-problem

Pero aun así no funciona. No tengo incluida la máquina con Debian en el dominio de Active Directory ¿Debería incluirla o no es necesario?

La configuración del archivo alfresco-global.properties es la siguiente:


###############################
## Common Alfresco Properties #
###############################
dir.root=/opt/alfresco-community/alf_data
alfresco.context=alfresco
alfresco.host=127.0.0.1
alfresco.port=8080
alfresco.protocol=http
share.context=share
share.host=127.0.0.1
share.port=8080
share.protocol=http
### database connection properties ###
db.driver=org.postgresql.Driver
db.username=alfresco
db.password=vm-alfresco
db.name=alfresco
db.url=jdbcSmiley Tongueostgresql://localhost:5432/${db.name}
# Note: your database must also be able to accept at least this many connections.  Please see your database documentation for instructions on how to configure this.
db.pool.max=275
db.pool.validate.query=SELECT 1
# The server mode. Set value here
# UNKNOWN | TEST | BACKUP | PRODUCTION
system.serverMode=UNKNOWN
### FTP Server Configuration ###
ftp.port=21
### RMI registry port for JMX ###
alfresco.rmi.services.port=50500
### External executable locations ###
ooo.exe=/opt/alfresco-community/libreoffice/program/soffice.bin
ooo.enabled=true
ooo.port=8100
img.root=/opt/alfresco-community/common
img.dyn=${img.root}/lib
img.exe=${img.root}/bin/convert
alfresco-pdf-renderer.root=/opt/alfresco-community/common/alfresco-pdf-renderer
alfresco-pdf-renderer.exe=${alfresco-pdf-renderer.root}/alfresco-pdf-renderer
jodconverter.enabled=false
jodconverter.officeHome=/opt/alfresco-community/libreoffice
jodconverter.portNumbers=8100
### Initial admin password ###
alfresco_user_store.adminpassword=3e6f0a8d49c4dca3ea19fb3692c19ec6
### E-mail site invitation setting ###
notification.email.siteinvite=false
### License location ###
dir.license.external=/opt/alfresco-community
### Solr indexing ###
index.subsystem.name=solr4
dir.keystore=${dir.root}/keystore
solr.host=localhost
solr.port.ssl=8443
### Allow extended ResultSet processing
security.anyDenyDenies=false
### Smart Folders Config Properties ###
smart.folders.enabled=false
### Remote JMX (Default: disabled) ###
alfresco.jmx.connector.enabled=false
### LDAP : Authentication ###
authentication.chain=alfinst:alfrescoNtlm,passthru1Smiley Tongueassthru,ldap1:ldap-ad
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
passthru.authentication.useLocalServer=false
passthru.authentication.domain=
passthru.authentication.servers=AYUNTAMIENTO\\172.16.103.41
###ldap.authentication.active=true
ldap.authentication.java.naming.provider.url=ldap://172.16.103.41:389
ldap.authentication.userNameFormat=CN=%s,OU=Agrosevilla,DC=ayuntamiento,DC=svq
### LDAP : Synchronization ###
###ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal=CN=Administrador,CN=Users,DC=ayuntamiento,DC=svq
ldap.synchronization.java.naming.security.credentials=T13r1.2k18
ldap.synchronization.groupSearchBase=OU=Agrosevilla,DC=ayuntamiento,DC=svq
ldap.synchronization.groupQuery=(objectclass\=posixGroup)
ldap.synchronization.userSearchBase=OU=Agrosevilla,DC=ayuntamiento,DC=svq
ldap.synchronization.personQuery=(objectclass\=user)
synchronization.import.cron=0 0 0 * * ?
synchronization.syncOnStartup=true

### CIFS/SMB Server Configuration ###
cifs.enabled=true
cifs.serverName=alfresco
cifs.domain=AYUNTAMIENTO
cifs.hostannounce=true
Gracias
1 ACCEPTED ANSWER

sergiorg96
Confirmed Champ
Confirmed Champ

He solucionado el problema, escribo para el que le pase lo mismo que a mi le sirva. He tenido que configurar en los clientes la directiva local de seguridad que comentaba Angel Borroy: "Configuración de Seguridad > Opciones de seguridad", "Seguridad de red: nivel de autenticación de LAN Manager", la opción "Enviar LM y NTLM: usar seguridad de sesión NTLMv2 si se negocia". El problema era que estaba configurado en el Controlador de Dominio, pero las peticiones de los clientes forzaba a NTLMv2.

View answer in original post

14 REPLIES 14

angelborroy
Community Manager Community Manager
Community Manager

Esa configuración (creo) que no es posible.

Authentication subsystem types | Alfresco Documentation 

Cuando utilizas LDAP-AD no hay posibilidad de autenticación CIFS.

Hyland Developer Evangelist

angelborroy
Community Manager Community Manager
Community Manager

Ahora recuerdo que puedes autenticar CIFS contra el dominio Windows utilizando Passthru.

Sería algo así.

# Passthru
passthru.authentication.servers=DOMAIN.LOCAL\\server.local
alfresco.authentication.authenticateCIFS=false
ldap.authentication.active=false
authentication.chain=alfinst:alfrescoNtlm,passthru1:passthru,ldap1:ldap-ad
Hyland Developer Evangelist

Tengo esa configuración si te fijas y es la que no me funcionaba:

### LDAP : Authentication ###
authentication.chain=alfinst:alfrescoNtlm,passthru1Smiley Tongueassthru,ldap1:ldap-ad
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
passthru.authentication.useLocalServer=false
passthru.authentication.domain=
passthru.authentication.servers=AYUNTAMIENTO\\172.16.103.41
¿Cómo podría obtener más información en los archivos de log para ver la comunicación mediante CIFS?
Gracias

angelborroy
Community Manager Community Manager
Community Manager

Aquí tienes algunas herramientas más:

 

¿Has verificado que CIFS sin AD funcione desde los ordenadores de los usuarios? Alfresco solo soporta SMBv1.

Hyland Developer Evangelist

Revisé esa publicación y habilité NTLM v2, pero parece que el error no estaba ahí. Estoy intentando conseguir más detalles en el archivo alfresco.log pero no lo consigo. He editado /opt/alfresco-community/tomcat/webapps/alfresco/WEB-INF/clases/log4j.properties tanto editando la línea log4j.rootLogger=error y cambiándola a log4j.rootLogger=debug, pero no me aparece debug del error que comenté. ¿Qué debería de editar en ese fichero para ver logs de debug de CIFS? ¿Ese es el fichero que tengo que editar?

CIFS funciona sin AD, con el usuario admin de alfresco, el problema viene cuando intento autenticarme con los usuarios AD.

Gracias Ángel

angelborroy
Community Manager Community Manager
Community Manager

Para cambiar el nivel de log, lo más cómodo es utilizar el directorio de extensión.

log4j.properties file | Alfresco Documentation  

Puedes renombrar el fichero custom-log4j.properties.sample a custom-log.properties en el directorio /opt/alfresco-community/tomcat/shared/classes/alfresco/extension e incluir algunas líneas como las siguientes.

log4j.rootLogger=error, Console, File, Auth

log4j.logger.org.alfresco.fileserver=debug
log4j.logger.org.alfresco.filesys.auth.cifs=debug

Tendrás que re-iniciar Alfresco para que aplique los cambios.

Hyland Developer Evangelist

He configurado custom-log.properties como me comentas y continúa sin aparecerme más nivel de log, sólo me aparece el mensaje de error que comentaba al principio.

He añadido las líneas que me comentabas en log4j.properties directamente y ahora me aparece un mensaje más (aunque sigue siendo poca información):

2018-11-05 14:19:25,210 ERROR [org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator] [AlfJLANWorker12] org.alfresco.jlan.smb.SMBException: Invalid parameter
2018-11-05 14:19:25,210 DEBUG [org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator] [AlfJLANWorker12] Returning SMBSrvException to JLAN
org.alfresco.jlan.smb.server.SMBSrvException: Access denied
        at org.alfresco.jlan.server.auth.CifsAuthenticator.processSessionSetup(CifsAuthenticator.java:543)
        at org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator.processAlfrescoSessionSetup(PassthruCifsAuthenticator.java:558)
        at org.alfresco.filesys.auth.cifs.PassthruCifsAuthenticator.processSessionSetup(PassthruCifsAuthenticator.java:494)
        at sun.reflect.GeneratedMethodAccessor478.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:119)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at com.sun.proxy.$Proxy217.processSessionSetup(Unknown Source)
        at org.alfresco.jlan.smb.server.NTProtocolHandler.procSessionSetup(NTProtocolHandler.java:417)
        at org.alfresco.jlan.smb.server.NTProtocolHandler.runProtocol(NTProtocolHandler.java:223)
        at org.alfresco.jlan.smb.server.SMBSrvSession.processPacket(SMBSrvSession.java:1492)
        at org.alfresco.jlan.smb.server.nio.NIOCIFSThreadRequest.runRequest(NIOCIFSThreadRequest.java:149)
        at org.alfresco.jlan.server.thread.ThreadRequestPool$ThreadWorker.run(ThreadRequestPool.java:153)
        at java.lang.Thread.run(Thread.java:748)

Gracias

He comprobado que conectándome desde Debian (donde está instalado alfresco) mediante smb://IP_Alfresco/alfresco, me permite conectarme, sin embargo, desde Windows utilizo \\IP_Alfresco\alfresco y me da error en la autenticación. ¿Existe alguna diferencia entre el acceso desde Linux (smb://) y desde Windows (\\)?

Gracias