El AMP (Alfresco Module Package) Alfresco PDF Toolkit nos permite añadir una serie de funcionalidades extra al gestor documental Alfresco que nos permiten manipular y trabajar con documentos PDF. En nuestro caso las funciones que más nos han interesado han sido la de encriptar y firmar digitalmente documentos a golpe de click o regla/workflow.
Alfresco PDF Toolkit es un proyecto que se aloja en Google Code y permite ya su integración con la interfaz «Share» además de «Alfresco» a partir de la versión 1.0 del plugin y Alfresco 4.x.
Esta nueva versión incorpora las siguientes funcionalidades sobre documentos PDF:
- Unir documentos
- Dividir documentos
- Dividir documentos indicando páginas específicas
- Añadir un PDF dentro de otro en una página específica
- Marcas de agua
- Encriptación
- Firma digital
- Transformar documentos TIFF a PDF
- Metadatos extendidos para capturar información de encriptación o firmas
- Buscar documentos encriptados o firmados a partir de metadatos de firma
La forma de instalación es la misma que con cualquier AMP, revisad el siguiente artículo para más detalle: Instalar AMPs en Alfresco. Una vez instalado aparecerán todas las nuevas acciones en las acciones de los documentos PDF:
Para probar la firma digital podemos crear un certificado self-signed y almacenarlo en un keystore. Ese keystore se puede probar subiéndolo a la home del usuario que lo va a utilizar. En el caso de entornos productivos se pueden generar procedimientos automáticos para evitar que el keystore esté almacenado en la misma máquina que Alfresco. En entornos de pruebas podéis generar un certificado del siguiente modo:
# keytool -genkey -keyalg RSA -alias "Alejandro G" -keypass PASSWORD -keystore keystore.ks -dname "cn=Alejandro G, c=ES"
Ese keystore.ks lo podéis usar para la firma digital. Veréis que os la pide a la hora de firmar junto con otros valores como la pass del keystore, la pass del certificado, el Alias, etc.
No dudés en ver este vídeo presentación de todas las posibilidades que ofrece Alfresco PDF Toolkit y su funcionamiento en el Front-End Share: