Archive for the 'FLOSS' Category

Alfresco Hack: cómo sacar un informe rápido de los contenidos del repositorio

Toni March 10th, 2010

Ya lo vi hace tiempo en Think Alfresco y sabía que algún día lo iba a necesitar, ahora quiero compartirlo con vosotros. Sabemos lo que ocupa el repositorio, sería tan fácil como hacer un du -sh contentstore, pero ¿qué tipo de archivos almacena ese repositorio y cuantos de cada tipo? Saber ese dato es importante al hacer migraciones, optimizar Lucene, etc. Es tan fácil como ejecutar el siguiente comando desde el directorio superior al contentstore de turno:

$ find ./contentstore -type f -exec file -inb {} \;| sort |uniq -c|sort -nr

Este comando nos dará como resultado algo parecido a lo siguiente:

    378 application/msword
    147 application/pdf
     72 text/plain; charset=us-ascii
     58 text/x-c++; charset=iso-8859-1
     12 text/plain; charset=utf-8
      8 text/html
      2 application/x-zip
      2 text/plain; charset=iso-8859-1
      2 image/jpeg
      2 application/x-empty
      2 text/x-c; charset=utf-8
      1 text/x-c++; charset=utf-8
      1 image/png

Fácil ¿no? Claro que también se puede hacer con un JavaScript y ejecutarlo como acción pero pienso que así es más rápido, además es el “Sys Admin way”.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Acceder al todo el repositorio desde Alfresco Share (3.2r Enterprise)

Toni February 23rd, 2010

access-to-repositoryUna nueva funcionalidad en Alfresco 3.2r Enterprise, es la capacidad de poder acceder al repositorio completo desde Alfresco Share y también a la navegación por categorías o etiquetas. Esto va reafirmando algo ya comentado por Alfresco en algun webinar, es decir, lo que conocemos como Alfresco Explorer o Web Client desaparecerá en futuras versiones (posiblemente en la 4.0) y en la versión 3.3 de Alfresco ya podremos hacer todo tipo de tareas directamente con Share.

Para activar esa característica (gracias Paul), simplemente hay que editar el fichero shared\classes\alfresco\web-extension\share-config-custom.xml

Busca la siguiente sección y cambia <visible>false</visible> por <visible>true</visible>:

<config evaluator="string-compare" condition="RepositoryLibrary" replace="true">
     <!--
        Whether the link to the Repository Library appears in the header component or not.
     -->
     <visible>true</visible>

Reinicia Alfresco y ya deberás tener acceso al repositorio a través del enlace como el que se ve en la captura de pantalla.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Integración de Alfresco con el correo electrónico

Toni February 8th, 2010

Se oye mucho de la integración de Alfresco con el correo electrónico, que si enviar correos, que si recibir, que si almacenamiento automático, que si clasificación automática, que si acceso IMAP con Oultook (Windows), Mail (Mac) o Thunderbird (Linux).

Vamos por partes, veremos como funciona el correo saliente, correo entrante y acceso por IMAP.

Correo saliente:

O lo que es lo mismo, cuando Alfresco envía un correo electrónico a un usuario por una invitación, notificación, desde una regla o acción, etc. Estamos hablando del protocolo SMTP, y en este caso, configuramos Alfresco para que se conecte con un servidor de correo, un MTA. Esta conexión puede ser en claro (funcionamiento por defecto) o cifrado mediante un hack que vamos a ver también en este artículo. Todos los correos que envía Alfresco lo hace con un mismo remitente que podremos especificar, es decir, el sistema no enviará correos como si fuésemos nosotros (nuestra cuenta de usuario de Alfresco) sino con su usuario específico del servidor, en mi caso alfrescotest@dominio.com.

Envio de correo por SMTP Autenticado pero sin cifrar:

En tomcat/shared/classes/alfresco-global.properties deberemos configurar así:

#
# Outbound Email Configuration
#-------------
mail.host=smtp.dominio.com
mail.port=25
mail.username=alfrescotest@dominio.com
mail.password=contraseña
mail.encoding=UTF-8
mail.from.default=alfrescotest@dominio.com
mail.smtp.auth=true
mail.smtp.timeout = 25000

También puedes configurar el “mail sender” descomentando las siguientes líneas en web-client-config-custom.xml (dentro del directorio extension)




alfrescotest@dominio.com
100

Envío de correo por SMTP Autenticado y cifrado (con Gmail por ejemplo):

Crea el siguiente fichero dentro del directorio extension:

# vi outbound-secure-mail-context.xml 








${mail.host}


${mail.port}


${mail.username}


${mail.password}


${mail.encoding}



${mail.smtp.auth}
${mail.smtp.timeout}
${mail.smtp.socketFactory.port}
${mail.smtp.socketFactory.class}
${mail.smtp.socketFactory.fallback}



En tomcat/shared/classes/alfresco-global.properties deberemos configurar así:

#
# Outbound Email Configuration
#-------------
mail.host=smtp.gmail.com
mail.port=465
mail.username=alfrescotest@gmail.com
mail.password=contraseña
mail.encoding=UTF-8
mail.from.default=alfrescotest@gmail.com
mail.smtp.auth=true
mail.smtp.socketFactory.port = 465
mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback = false
mail.smtp.timeout = 25000
mail.smtp.starttls.enable = true

También puedes configurar el “mail sender” descomentando las siguientes líneas en web-client-config-custom.xml (dentro del directorio extension)




alfrescotest@gmail.com
100

Para ver las trazas del correo en los logs de Alfresco deberíamos añadir la siguiente línea en log4j.properties:

log4j.logger.org.alfresco.web.bean.TemplateMailHelperBean=debug

Correo entrante:

Cuando Alfresco es capaz de recibir un correo con sus archivos adjuntos y almacenarlos en el repositorio. Aquí también se utiliza el protocolo SMTP (puerto 25/TCP). Esta funcionalidad ya está terminada y soporta reglas de correos entrantes (clasificación de ficheros adjuntos, etc) lo que aun no soporta es la conversión a html del cuerpo de los mensajes. Vamos a ver como se configura.

Para activarlo debemos editar el fichero tomcat/shared/classes/alfresco-global.properties:

# Enable/Disable the inbound email service. #The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
#-------------
email.inbound.enabled=true
# Email Server properties
#-------------
email.server.enabled=true
email.server.port=25
email.server.domain=subdominio.blyx.com
email.inbound.unknownUser=anonymous
# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match. #For example:
# # .*\@alfresco\.com, .*\@alfresco\.org
# Allow anyone:
#-------------
email.server.allowed.senders=.*\@blyx\.com

En email.server.domain debemos especificar el dominio que recibirá correos del tipo EmailAlias@subdominio.blyx.com, lo más cómodo es crear un subdominio y apuntar el registro MX del DNS de dicho subdominio al servidor Alfresco.

No olvides que para evitar el uso indiscriminado de Alfresco para recibir correos, hay que añadir los usuarios del sistema que queramos permitir recibir correos al grupo EMAIL_CONTRIBUTORS (Consola de Administración), estos usuarios serán los que deben añadir el Email Alias a los espacios.

Hay dos formas de enviar correos a Alfresco, a un espacio que lo hemos activado como Email Alias, por ejemplo a correotoni@subdominio.blyx.com o a un espacio del que conocemos su Node DBID, por ejemplo, 1076@subdominio.blyx.com.

Para activar y ver el Node DBID, mira este artículo, una vez activado, en los detalles de cada contenido o espacio verás el Node DBID. Para activar el Email Alias de un espacio donde quieras enviar los correos debes ejecutar una acción sobre el espacio de turno, por ejemplo “Correo” → Ver Detalles → Ejecutar una Acción → Agregar aspecto al contenido → Email Alias, hecho esto veremos un nuevo metadato en las propiedades del espacio. Ahora tenemos que editar esos metadatos pinchando en el icono de modificar que hay en la esquina superior derecha del cuadro “Propiedades”, en el campo “Alias de email” debes especificar el identificador que usarás para enviar los correos, en el caso de la captura sería correotoni@subdominio.blyx.com:

email-alias
Hecho esto ya podemos enviar correos a nuestro Alfresco. Cuando pueda probar suficientemente el enrutado de documentos adjuntos os lo contaré.

El correo entrante también soporta TLS como vimos en el saliente, es muy fácil de configurar, mira aquí.

Buzón de correo:

Cuando accedemos al repositorio como si de un buzón de correo IMAP se tratase (puerto 143/TCP), es decir, acceder al repositorio mediante nuestro cliente de correo favorito, ya sea Mail, Thunderbird, Outlook u otro. Información extraída de la wiki y de mis pruebas.

Vamos a ver como activar IMAP. Para ello, editamos alfresco-global.properties y activamos los siguientes valores. En imap.server.host debes poner el nombre completo de tu servidor o IP, será donde se levante el puerto 143:

#
# IMAP
#-------------
imap.server.enabled=true
imap.server.port=143
imap.server.host=subdominio.blyx.com

Los valores anteriores son los que establece el servidor por defecto, pero hay más opciones en tomcat/webapps/alfresco/WEB-INF/classes/alfresco/repository.properties, simplemente tenemos que copiarlos justo debajo de imap.server.host.

imap.server.attachments.extraction.enabled=true
# Default IMAP mount points
imap.config.home.store=${spaces.store}
imap.config.home.rootPath=/${spaces.company_home.childname}
imap.config.home.folderPath=Imap Home
imap.config.server.mountPoints=AlfrescoIMAP
imap.config.server.mountPoints.default.mountPointName=IMAP
imap.config.server.mountPoints.default.modeName=ARCHIVE
imap.config.server.mountPoints.default.store=${spaces.store}
imap.config.server.mountPoints.default.rootPath=/${spaces.company_home.childname}
imap.config.server.mountPoints.value.AlfrescoIMAP.mountPointName=Alfresco IMAP
imap.config.server.mountPoints.value.AlfrescoIMAP.modeName=MIXED

Hay tres modos de trabajar con IMAP en Alfresco, “ARCHIVE” que permite leer y escribir vía IMAP, “VIRTUAL” que ofrece una visión del repositorio como correos electrónicos, y “MIXED” que permite los dos anteriores, es la que está activada por defecto como ves en la configuración así como el punto de montaje “IMAP Home” está definido como “Company Home”. Las plantillas para configurar la vista de los contenidos como correos electrónicos están disponibles en Freemarker en Company Home → Data Dictionary → Imap Configs → Templates.

Para configurar el cliente de correo electrónico debemos tener en cuenta los siguientes datos:

Servidor IMAP: IP o nombre del servidor Alfresco.

Puerto: 143

Usuario: tu usuario de Alfresco.

Contraseña: tu contraseña de Alfresco.

Configuración SMTP: puedes usar otra configuración que conozcas, no aplica en este caso.

¿Como activar un Site para acceder al “Document Library” y “Links” mediante IMAP?

En nuestro “Panel de control” o “Dashboard” en Share, en el cuadro “Mis sitios” deberemos activar pinchando en el icono en forma de estrella con un sobre:

favorito-site-imap

Hecho eso y refrescando nuestra cuenta en el cliente de correo ya veremos algo como la siguiente captura:

ver-sitio-en-cliente
Vale, ¿y como subo ficheros a Alfresco mediante IMAP? Fácil, si en tu cliente de correo tienes otras cuentas de correo configuradas prueba pinchar sobre un correo y arrástrarlo a la carpeta principal de la cuenta recién configurada de AlfrescoIMAP, el correo electrónico y sus ficheros adjuntos subirán a Company Home → IMAP Home → Usuario → INBOX, veríamos algo como lo siguiente en Alfresco Explorer:

vista-inbox-en-alfresco-explorer

También podemos arrastrar a cualquier otra carpeta de Alfresco a la que tengamos acceso de escritura mediante IMAP, como por ejemplo el DocumentLibrary de cualquiera de nuestros Sites en Alfresco Share, mira esto.

Puede ser cómodo para almacenar correos en Alfresco de forma rápida, simplemente pinchando, arrastrando y soltando, como dicen los guiris “drag and drop” ;)

He intentado cubrir todos las posibilidades con el correo electrónico y espero que haya sido claro en las explicaciones. Perdonad la maquetación del artículo. Como siempre, los comentarios están abiertos a vuestras sugerencias, correcciones y demás.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Creación de gráficas completas de monitorización de Alfresco

Toni February 1st, 2010

Como hablamos en el artículo anterior, gracias a la característica “peformance data” que soporta el Nagios Plugin for Alfresco y a pnp4nagios, podemos conseguir gráficas de estado e históricas de todo lo que acontece en Alfresco, de esa forma podemos preveer y anticiparnos a incidencias o detectar picos y anomalías, algo que es imprescindible en herramientas de uso intensivo en un ámbito empresarial como es el caso de Alfresco.

En este artículo os cuento como instalar y configurar pnp4nagios para conseguir estadísticas extraídas con el plugin recién liberado. Aquí vemos una captura de algunas gráficas y también puedes descargar este PDF para ver un ejemplo de informe extraido de pnp4nagios.

pnp4nagios-captura

Empecemos con la instalación de requisitos, todos los pasos son para Centos 5.4 y con Icinga, pero es aplicable a otras distribuciones con soporte Yum y por supuesto funciona con Nagios.

Continue Reading »

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Nagios plugin for Alfresco released!!

Toni January 29th, 2010

I’ve just released the version 1.0 of the new Nagios Plugin for Alfresco, which can be used with Icinga too. I have employed Enterprise JMX capabilities to extract and check information from Alfresco. It has been tested in Alfresco Enterprise 3.2.

Nagios is an Open Source network monitoring tool that can be configured to monitor services on a network. Icinga is a new fork of Nagios. They are both used extensively in enterprise environments.

You can download it here http://forge.alfresco.com/projects/nagios4alfresco/

nagios_plugin_for_alfresco_screenshot

UPDATED! Version 1.1 released. Added “performance data” support. Now you can graph all checks with pnp4nagios.

It checks the following services:

  • PING
  • SSH
  • Alfresco Application Server
  • Alfresco Web Server - proxy
  • Alfresco VTI Share Point - Jetty
  • Alfresco FTP Server
  • Alfresco CIFS Server - NetBIOS
  • Alfresco CIFS Server - SMB
  • Alfresco RMI - JMX
  • Alfresco IMAP Server
  • Alfresco SMTP Server - incoming
  • Alfresco - Heap Memory Usage -
  • Alfresco - System Load Average
  • Alfresco - Thread Count
  • Alfresco - Number of Total Users
  • Alfresco - Number of Total Groups
  • Alfresco - Connection Pool
  • Alfresco - ContentStore Size
  • Alfresco - ContentStore Deleted Size
  • Alfresco - Audit Store Size
  • Alfresco - Hibernate Connect Count
  • Alfresco - Lucene Indexes SpacesStore Used
  • Alfresco - Lucene Indexes SpacesStore Num
  • Alfresco - Repo Sessions
  • Alfresco - Repo Users Connected
  • Alfresco - Total Memory Used
  • Alfresco - Free Memory
  • Alfresco - Max Memory
  • Alfresco - Cache Size

You can find it at Nagios Exchange or Monitoring Exchange

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Integración de Alfresco y Liferay

Toni January 6th, 2010

liferay-alfrescoMucho se ha hablado, se habla y se hablará de esta integración. Os recomiendo este post escrito por Vara: http://rvara.wordpress.com/2009/07/14/liferay-integrating-with-alfresco/ es de los más completos que he leido últimamente y despeja muchas dudas sobre qué y cómo se puede hacer la integración.

ACTUALIZACIÓN I: Gracias a ZYLK aquí tenemos otra forma de integrar muy fácilmente mediante CMIS, Liferay con Alfresco.

ACTUALIZACIÓN II: más info aquí, aquí y aquí.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Alfresco: configuración de Single Sign On (SSO) con NTLM vía Active Directory. Parte 3 de 3

Toni January 4th, 2010

En este último artículo de la serie veremos como “Activar el SSO en Alfresco CIFS con Active Directory (NTLM)“:

Recuerda activar los logs de DEBUG para CIFS y tener una visión más amplia de lo que pasa en el sistema, para ello debemos descomentar las líneas correspondientes en el archivo log4j.properties que hay en el directorio classes del alfresco.war desplegado (webapps/alfresco/WEB-INF/classes):

# CIFS server debugging
log4j.logger.org.alfresco.smb.protocol=error
log4j.logger.org.alfresco.smb.protocol.auth=debug
log4j.logger.org.alfresco.acegi=debug

Ficheros que intervienen para configurar SSO en Alfresco CIFS:

  • file-servers.xml en <configRoot>
  • file-servers-custom.xml en <extension>

Copia toda la sección <config evaluator=”string-compare” condition=”CIFS Server”> del fichero file-servers.xml a file-servers-custom.xml dentro de la sección “alfresco-config“.

Y también la sección <config evaluator=”string-compare” condition=”Filesystem Security”> del fichero file-servers.xml a file-servers-custom.xml dentro de la sección “alfresco-config“.

Editamos file-servers-custom.xml:

Añada replace=”true” en <config evaluator=”string-compare” condition=”CIFS Server” replace=”true”>

Para mi servidor Alfresco que lo he llamado “alfresco” con dominio “test.tld” pondría esta configuración:

<serverEnable enabled=”true”/>
<host name=”alfresco” domain=”test.tld“/>
<comment>Alfresco CIFS Server</comment>

En <host name=”alfresco” domain=”test.tld”/> elimina la A, este atributo hace que se publique el CIFS con el nombre de la máquina + A en caso de tener otro CIFS en esa máquina, en nuestro caso sólo tenemos uno y la quitamos.

Modificamos <authenticator type=”passthru”/> y descomentamos y/o modificamos la sección siguiente:
<authenticator type=”passthru“>
<Server>TEST.TLD\10.215.253.165, 10.215.253.165</Server> <!– dominio e IP del controlador del dominio –>
<protocolOrder>TCPIP,NetBIOS</protocolOrder>
<offlineCheckInterval>60</offlineCheckInterval>
</authenticator>

Una vez hecho esto ya podremos arrancar Alfresco y acceder, en mi caso, por CIFS a \\alfresco\Alfresco desde un cliente Windows XP del dominio y accederemos directamente sin solicitar usuario y contraseña.

En los logs deberemos ver algo así (usuario toni que está en Active Directory y ha iniciado la sesión) :

00:07:09,486  DEBUG [smb.protocol.auth] Mapped client /10.215.253.168 to domain null
00:07:09,589  DEBUG [smb.protocol.auth] Passthru sessId=15, auth ctx=[NTLM,Challenge=1d9c38e2728fb40a]
00:07:09,594  DEBUG [smb.protocol.auth] Null CIFS logon allowed, sess = T9
00:07:09,607  DEBUG [smb.protocol.auth] Using Write transaction
00:07:09,613 User:toni DEBUG [smb.protocol.auth] Setting current user using person toni (username toni)
00:07:09,613 User:toni DEBUG [smb.protocol.auth] Passthru authenticate user=toni, FULL
00:07:09,619 User:toni DEBUG [smb.protocol.auth] Closed auth session, sessId=15
00:07:09,647  DEBUG [smb.protocol.auth] Null CIFS logon allowed, sess = T9

Por último, para que funcione todo accediendo por FQDN, por ejemplo, hostname.domain.tld hay que configurar los navegadores según el siguiente manual: http://www.nateirwin.net/2007/01/19/enabling-ntlm-authentication-in-firefox-and-internet-explorer/, es decir, en IE configurar la URL como sitio de confianza.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Alfresco: configuración de Single Sign On (SSO) con NTLM vía Active Directory. Parte 2 de 3

Toni January 2nd, 2010

En esta segunda parte veremos como “Activar el SSO en Alfresco Share con Active Directory (NTLM)“:

Hasta aquí, hemos conseguido acceder autenticados automáticamente a Alfresco Explorer y Alfresco Webdav, pero ¿qué pasa con Alfresco Share? Si probáis acceder en este momento tras la configuración anterior , veréis que os pide usuario y contraseña para poder acceder de forma normal, por lo que no está el SSO activado, vamos a ver como se configura.

Ficheros que intervienen:

  • web.xml -> dentro de WEB-INF de share.war (ya desplegado)
  • webscript-framework-config-custom.xml -> dentro de web-extension en el shared

En web.xml descomentar las dos secciones filter y filter-mapping que hacen referencia a NTLM.

En el fichero webscript-framework-config-custom.xml añadir dentro de la etiqueta alfresco-config la siguiente configuración:

<config evaluator=”string-compare” condition=”Remote”>
<remote>

<endpoint>
<id>alfresco</id>
<name>Alfresco - user access</name>
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>http://yourserver:8080/alfresco/wcs</endpoint-url>
<identity>user</identity>
<external-auth>true</external-auth>
</endpoint>

</remote>
</config>


Donde vemos yourserver debemos especificar localhost que es desde donde Share ve a Alfresco (esto es importante, si no sabes qué poner deja localhost). Reiniciamos Alfresco y listo.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Alfresco: configuración de Single Sign On (SSO) con NTLM vía Active Directory. Parte 1 de 3

Toni January 1st, 2010

Para comenzar el año, os dejo aquí el primero de una serie de 3 artículos sobre la configuración de Single Sign On con Alfresco Enterprise 3.1. Las versiones 3.2 de Alfresco requieren una configuración que difiere de la que se cita a continuación. Estos artículos los he podido escribir gracias a la ayuda de Isaías Aranda, Raúl Macián y Fernando Gonzalez, compañeros y expertos en Alfresco de Intecna.

En este artículo veremos como “Activar SSO (Single Sign On) con Alfresco Explorer y Webdav con Active Directory (NTLM)“, en los siguientes artículos de esta serie veremos cómo “Activar el SSO en Alfresco Share con Active Directory (NTLM)” y cómo “Activar el SSO en Alfresco CIFS con Active Directory (NTLM)“.

¿Qué es Single Sign On (SSO)? Según la Wikipedia, que lo explica bastante bien, es un procedimiento de autenticación que habilita al usuario para acceder a varios sistemas con una sola instancia de identificación. Hablando en plata, que introduces tus credenciales una vez y ya accedes a todas las demás aplicaciones configuradas para funcionar como SSO. Más info aquí.

No confundas SSO con autenticar diferentes aplicaciones con el mismo usuario y contraseña, eso no es SSO, eso será autenticación centralizada.

Este procedimiento explica cómo configurar Alfresco Enterprise 3.1SP2 para que detecte las credenciales del usuario que accede a su estación de trabajo Windows XP logueando en un dominio controlado por Active Directory de esa forma, cuando el usuario acceda a Alfresco con Internet Explorer, autenticará dentro del Alfresco Explorer y Webdav automáticamente sin pedir usuario y contraseña, es decir, detectando el usuario que ya se envía en la sesión de Windows.

También se puede hacer esto con Firefox escribiendo “about:config” sin comillas en la URL, buscamos la cadena “network.automatic-ntlm-auth.trusted-uris” y añadimos (doble-click) la URL de Alfresco, en el caso de este artículo sería http://alfresco.test.tld:8080/alfresco

Datos usados para estos artículos:

  • IP del controlador de dominio: 10.215.253.165 (w2003.test.tld)
  • Dominio: TEST.TLD
  • IP servidor Alfresco: 10.215.253.168 (alfresco.test.tld)

Ficheros que intervienen:

  • web.xml -> dentro de WEB-INF de alfresco.war desplegado, directorio alfresco en webapps
  • ntlm-authentication-context.xml -> en <extension>

En el web.xml modificar según se indica en: http://wiki.alfresco.com/wiki/3.0_Configuring_NTLM#Alfresco_Explorer_and_WebDav_SSO_using_NTLM simplemente es descomentar unas cuantas líneas que prefiero obviar aquí, pero no olvides hacerlo para que todo funcione.

En ntlm-authentication-context.xml quitar la extension .sample del nombre de fichero y modificar o añadir el siguiente bean:
<bean id=”authenticationComponent” class=”org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl” parent=”authenticationComponentBase”>
<property name=”useLocalServer”>
<value>false</value>
</property>
<!– Damain Servers –>
<property name=”servers”>
<value>TEST.TLD\10.215.253.165, 10.215.253.165</value>
</property>
<property name=”personService”>
<ref bean=”personService” />
</property>
<property name=”nodeService”>
<ref bean=”nodeService” />
</property>
<property name=”transactionService”>
<ref bean=”transactionComponent” />
</property>
<property name=”guestAccess”>
<value>false</value>
</property>
</bean>

Importante, hay que controlar los logs mientras estamos configurando estas funcionalidades, para ello debemos descomentar las siguientes líneas en el archivo log4j.properties que hay en el directorio classes del alfresco.war desplegado (webapps/alfresco/WEB-INF/classes):

# NTLM servlet filters
log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug

Reiniciamos Alfresco y ya podemos probar. Al acceder vía web (Alfresco Explorer) tras iniciar sesión con Windows XP en el dominio, deberemos ver unas trazas como las siguientes (Dominio TEST.TLD, Usuario: toni, Nombre de la máquina cliente: XPAIR, servidor Alfresco MACBOOK-DE-TONI):

20:41:26,223  DEBUG [app.servlet.NTLMAuthenticationFilter] New NTLM auth request from 10.215.253.168 (10.215.253.168:57688) SID:1B5CD1A3F83CE31F0EA27770359574FD
20:41:26,226  DEBUG [app.servlet.NTLMAuthenticationFilter] Received type1 [Type1:0xa2088207,Domain:<NotSet>,Wks:<NotSet>]
20:41:26,227  DEBUG [app.servlet.NTLMAuthenticationFilter] Client domain null
20:41:26,330  DEBUG [app.servlet.NTLMAuthenticationFilter] Sending NTLM type2 to client - [Type2:0x80000203,Target:MACBOOK-DE-TONI,Ch:9e407e94299c1e11]
20:41:26,335  DEBUG [app.servlet.NTLMAuthenticationFilter] Received type3 [Type3:,LM:3ca6bb198992e77cc713341304743f156de9a77061678617,NTLM:239d3b79b323af49d32a77be92842057d65b32af3fb4236b,Dom:TEST,User:toni,Wks:XPAIR]
20:41:26,381 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Updated cached NTLM details
20:41:26,381 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] User logged on via NTLM, [toni,Wks:XPAIR,Dom:TEST,AuthSrv:MACBOOK-DE-TONI,Sun Dec 20 20:41:26 CET 2009]
20:41:27,287 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Processing request: /alfresco/wcservice/api/search/keyword/description.xml SID:null
20:41:27,287 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Found webscript with no authentication - set NO_AUTH_REQUIRED flag.
20:41:27,288 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Authentication not required (filter), chaining …
20:41:29,537 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Processing request: /alfresco/wcservice/api/search/keyword/description.xml SID:7784CDFAD8E6B29103D6A2E02FE558F1
20:41:29,540 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Found webscript with no authentication - set NO_AUTH_REQUIRED flag.
20:41:29,540 User:toni DEBUG [app.servlet.NTLMAuthenticationFilter] Authentication not required (filter), chaining …

Recuerda añadir el usuario que quieras dotar de permisos administrador en el grupo ALFRESCO_ADMINISTRATOR o añadir el usuario en el authority-services-context.xml, cópialo en <extension> desde el <configRoot> y lo modificas según tus necesidades:

<property name=”adminUsers”>
<set>
<value>${alfresco_user_store.adminusername}</value>
<value>administrator</value>
<value>TU_USUARIO</value>
</set>
</property>

Y listo. Así de fácil.

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Alfresco implementation best practices (presentación)

Toni October 22nd, 2009

Ya de vuelta del Meetup, decir que en líneas generales ha sido un evento bastante interesante, en cuanto a asistencia (más de 200 personas), interés de los allí presentes y nivel de las charlas. Como ya comenté, estuve hablando de buenas prácticas en la implementación de Alfresco de la mano de Intecna Soluciones.  Básicamente en la charla, que duró una hora y pico, abordémasterclass temas relacionados con los casos de uso, componentes y características de Alfresco, y finalmente consejos sobre arquitectura, clustering, autenticación, webscripts, desarrollo y seguridad, etc. La verdad es que como ya preveía, se quedaron en el tintero muchas cosas pero creo que, al menos, conté lo más importante sin profundizar mucho en el tema. Fue curioso porque el personal de Alfresco ubicó mi charla en el grupo de las “non-technical” pero sin embargo fue totalmente técnica (lo siento porque creo que algunos asistentes que no se enteraron de mucho).

Quiero agradecer a todos los asistentes y a mis compañeros de Intecna, concretamente a Fernando Gonzalez, Gildo Castillo y Roberto Gamiz que me han resuelto muchas dudas cuando estuve traduciendo y preparando la presentación. También, por supuesto, al staff de Alfresco que estuvo allí al pie del cañón y Jeff Potts, Russ Danner y Peter Monks por contar conmigo.

UPDATE: Me comenta Nancy Garrity, Alfresco Community Manager, que ya tenemos un espacio Best Practices creado en la Wiki de Alfresco para ir poniendo las buenas prácticas.

Aquí la presentación en español:

  • Meneame
  • Netvibes Share
  • Delicious
  • Digg
  • Google Reader
  • Technorati Favorites
  • LinkedIn
  • Twitter
  • TypePad Post
  • Blogger Post
  • Google Bookmarks
  • WordPress
  • Facebook
  • Share/Bookmark

Next »