ATLAS MANUAL DE INTEGRACIÓN Servicios de Firma AFC + AUTOFIRMA Versión 1.2 Arquitectura de Software Framework Atlas Servicios de Firma AFC Servidor Hoja de Control Título Servicios de Firma AFC + AUTOFIRMA Documento de Referencia NORMATIVA ATLAS Responsable Arquitectura de Software Versión 1.0 Fecha Versión 09/12/2015 Registro de Cambios Versión Causa del Cambio Responsable del Cambio 1.0 Versión inicial del documento Añadida información sobre librería crypt-lib Arquitectura de Software 2 de 12 Fecha del Cambio 09/12/2015 Framework Atlas Servicios de Firma AFC Servidor Índice 1. INTRODUCCIÓN ................................................................................................................................................................ 4 1.1. AUDIENCIA OBJETIVO ...................................................................................................................................................... 4 1.2. INSTALACION .............................................................................................................................................................. 6 1.2.1. Paso 1: Añadir la dependencia al módulo de Administración Electrónica ............................................................ 6 2. AFC + AUTOFIRMA ........................................................................................................................................................... 6 3. DIFERENCIAS EN EL PROCEDIMIENTO DE RECOGIDA DE FIRMAS ................................................................ 7 3.1. 3.2. 4. RECOGER FIRMAS CADES Y XADES.................................................................................................................................. 7 RECOGER FIRMAS PADES ................................................................................................................................................. 8 DIFERENCIAS EN EL PROCESO DE FIRMA CON AUTOFIRMA ........................................................................... 8 4.1. 4.2. FIRMAS UTILIZANDO LA OPCIÓN DE PRESENTACIÓN 1 Y 2 ................................................................................................ 8 FIRMAS UTILIZANDO LA OPCIÓN DE PRESENTACIÓN 3 Y 4 .............................................................................................. 10 5. PREGUNTAS FRECUENTES .......................................................................................................................................... 11 6. ENLACES RELACIONADOS .......................................................................................................................................... 12 3 de 12 Framework Atlas Servicios de Firma AFC Servidor 1. INTRODUCCIÓN El actual documento explica los cambios realizados en AFC y su integración con la aplicación AutoFirma para las firmas en Cliente. A su vez, se informa de los cambios que serán necesarios en las aplicaciones actuales para el correcto funcionamiento de las firmas XADES y CADES. Integración: La integración con la solución de AFC se realiza a través de la librería del Framework Atlas atlasfrm_eadm (librería que conecta con los servicios de administración electrónica) en su versión 1.2.8.3 como mínimo. ATENCION En la versión 1.2.8 del framework atlas (usando la librería 1.2.8.3 de eadm-lib), será necesario establecer una nueva variable en los ficheros de environment.properties de TODOS los entornos. afc.certificado.endpoint=https://entorno.madrid.org/afc_ws/services/ServicioAFCCertificado Esta librería puede ser utilizada tanto por aplicaciones desarrolladas con el framework Atlas así como las desarrolladas con otros frameworks Java (framework 2 o framework Justicia). ATENCION A partir de la versión 1.2.9 del framework atlas, la librería que se utilizará será la nueva atlasfrm-crypt-lib en vez de eadm-lib como hasta ahora. Por lo tanto, para utilizarla tan solo tenemos que agregar la dependencia a nuestro fichero pom.xml, tal que así: <dependencies> … <dependency> <groupId>atlasfrm</groupId> <artifactId>atlasfrm-crypt-lib</artifactId> <version>${atlasfrm-crypt-lib.version}</version> </dependency> </dependencies> 1.1. Audiencia objetivo Este documento está orientado a desarrolladores java que necesiten realizar firmas en Cliente utlizando AFC con 4 de 12 Framework Atlas Servicios de Firma AFC Servidor exploradores Chrome y Firefox. Este documento no explicará el alta, configuración y demás pasos básicos descritos en el resto de documentos. Revisad la documentación de AFC para tal fin. 5 de 12 Framework Atlas Servicios de Firma AFC Servidor 1.2. INSTALACION Para utilizar correctamente la versión de AFC en conjunto con AutoFirma, será necesario apuntar a la versión de la librería de eadm correcta en el fichero pom.xml. 1.2.1. Paso 1: Añadir la dependencia al módulo de Administración Electrónica Para añadir la dependencia al módulo de Administración Electrónica (eadm-lib) dentro de nuestro proyecto maven hay que añadir una entrada “dependency” en la sección “dependencies” del fichero “pom.xml” del proyecto, como se puede ver en el siguiente ejemplo: pom.xml <dependencies> … <dependency> <groupId>atlasfrm</groupId> <artifactId>atlasfrm-eadm-lib</artifactId> <version>1.2.8.3</version> </dependency> </dependencies> NOTA Incluir la versión descrita en el ejemplo será solo necesario para proyectos atlas que utilicen la versión 1.2.8. Para proyectos con versiones anteriores a atlas, será necesario su actualización a 1.2.8. Para proyectos en versiones superiores de atlas (1.2.9 o superior) no será necesario incluir el número de versión 1.2.8.3, tan solo será necesario la nueva librería para accesos a AFC crypt-lib <dependencies> … <dependency> <groupId>atlasfrm</groupId> <artifactId>atlasfrm-crypt-lib</artifactId> <version>${atlasfrm-crypt-lib.version}</version> </dependency> </dependencies> 2. AFC + AUTOFIRMA La versión de AFC 1.5.0 utiliza AutoFirma para realizar las firmas en cliente y no el miniapplet de @afirma como hasta ahora. Esta actualización de AFC implica ciertos cambios en las aplicaciones clientes que serán explicados a continuación. 6 de 12 Framework Atlas Servicios de Firma AFC Servidor 3. DIFERENCIAS EN EL PROCEDIMIENTO DE RECOGIDA DE FIRMAS La recogida de firmas a partir de la versión de AFC + AutoFirma ha cambiado, y el método que hasta ahora se utilizaba para recoger las firmas ya no es válido. Se ha creado un nuevo método para la recogida de firmas Cades y Xades, marcándose como deprecados los métodos antiguos. 3.1. Recoger firmas Cades y Xades A la hora de recoger los ficheros ya firmados de este tipo de firmas, será imprescindible la utilización del método recogerFirmasBase64: AfcOpClienteService.java /** * Método para recoger las firmas Xades y Cades de operaciones masivas. * Este método, retorna byte[] en Base64. Es necesario decodificarlo para obtener las firmas * @param token String con el token * @return Map<UUID, byte[]> Mapa con id y fichero en byte[] Base64 * @throws ServiceException En caso de error */ Map<UUID, byte[]> recogerFirmasBase64(String token) throws ServiceException; El nuevo método devuelve un mapa de Id’s junto con un byte[], el cual está codificado en Base64 y será necesario decodificar en nuestro código posteriormente para disponer de los datos firmados. Nuestra clase Java, resultado de firma Masiva (más de un fichero) //Recogemos firmas Map<UUID, byte[]> mapaResultado = afcService.recogerFirmasBase64(token); … //Recorremos resultados for (UUID uuid : mapaFirmas.keySet()) { … //Recogemos y decodificamos datos firmados afcFileInfo.setFichero(Base64.decodeBase64(mapaFirmas.get(uuid))); … … } … Utilizaremos la clase Base64, cuya importación es: import org.apache.commons.codec.binary.Base64; 7 de 12 Framework Atlas Servicios de Firma AFC Servidor Por lo tanto, realizaremos la llamada al nuevo método y al recoger los datos, los decodificaremos. De la misma manera, al realizar la firma de un solo elemento xades o cades, tendremos que decodificar los datos obtenidos. No obstante en este caso se utilizará el mismo método que hasta ahora para recogerlos. Nuestra clase Java, resultado de firma única (solo un fichero) //Recogemos firma Byte[] ficheroFirmado = Base64.decodeBase64(afcService.recogerFirma(this.token)); … 3.2. Recoger firmas Pades La forma de obtener los datos firmados en firmas Pades no cambia, por lo que revisad la documentación asociada: ATLAS_MUS_Servicio_AFC_Ope_Cliente.doc 4. DIFERENCIAS EN EL PROCESO DE FIRMA CON AUTOFIRMA Debido a la utilización de AutoFirma, el proceso de firmado en AFC ha cambiado para adecuarse a esta aplicación. A partir de la versión 1.5.0 de AFC, será necesario AutoFirma para realizar firmas en cliente de documentos, independientemente del tipo de documento. A continuación, se mostrarán los cambios más importantes en el proceso de firma NOTA Estos cambios serán solo visibles desde navegadores diferentes a Internet Explorer. Internet Explorer (Solo se soportan versiones IE8 o superior) seguirá utilizando el miniapplet de @afirma para realizar la firma de documentos. 4.1. Firmas utilizando la opción de presentación 1 y 2 Con las opciones de presentación 1 y 2 se muestra la siguiente información en AFC: 8 de 12 Framework Atlas Servicios de Firma AFC Servidor Si se pulsa sobre el link del aviso “Descargar e instalar AutoFirma” comenzará la descarga de la aplicación y mostrará unas instrucciones básicas de instalación: El usuario puede inciar firma directamente sin instalar AutoFirma si pulsa sobre el botón “Tengo instalado Autofirma. Iniciar Firma”. Una vez iniciada la firma, aparecerá en pantalla la ejecución de la aplicación AutoFirma: 9 de 12 Framework Atlas Servicios de Firma AFC Servidor Pulsando en Ejecutar aplicación se iniciará AutoFirma y procederá a firmar los ficheros. NOTA AFC no puede comprobar si el usuario tiene instalada la aplicación AutoFirma, en tal caso, se producirá un timeOut y AFC mostrará un mensaje de error con un link de descarga de AutoFirma. El usuario en todo momento puede cancelar el proceso de firma volviendo a la aplicación cliente (la aplicación llamante) o reintentar el proceso. 4.2. Firmas utilizando la opción de presentación 3 y 4 Las opciones de presentación 3 y 4 se realizan a través de una ventana iFrame ejecutada desde la aplicación Cliente. Debido a los mensajes informativos sobre AutoFirma, la resolución MÍNIMA con la que se debe abrir el iFrame debe ser de 860 de ancho x 440 de alto. 10 de 12 Framework Atlas Servicios de Firma AFC Servidor La opción de presentación 4 es la firma directa, no obstante, si el usuario no ha realizado ninguna firma previamente, el modo de presentación pasará a ser igual que el 3, con aviso para usuario de descarga de AutoFirma, confirmaciones, etc. Una vez realizada la firma, se creará una cookie, las siguientes veces que firme en AFC con opción de presentación 4, se realizará de forma directa sin confirmaciones (más allá de la elección de certificado). 5. PREGUNTAS FRECUENTES ¿Va a convivir la versión actual de AFC con la nueva 1.5.0? No, solo existirá la nueva versión 1.5.0 (o superior) de AFC. Mi aplicación realiza firmas PADES del hash de los documentos, ¿Es necesario algún cambio con la nueva versión de AFC? No, las firmas PADES que se realizan a partir del Hash, o las firmas masivas PADES, no requieren ningún cambio en las aplicaciones Cliente. ¿Se puede seguir utilizando para firmar el miniApplet como hasta ahora a través de AFC? Si, el soporte con mini applet sigue habilitado para Internet Explorer 8 o superior ¿Debemos incorporar instrucciones sobre AutoFirma en nuestra aplicación antes de llamar a AFC? No es obligatorio. ¿Se puede utilizar esta nueva versión de AFC desde un proyecto Framework2? Si, para ello se utiliza la interfaz de Framework2 FW2Util, para más datos consultar el documento de integración de FW2 de AFC He realizado la firma de un documento CADES y el fichero resultante no dispone de una firma válida Comprueba que estás utilizando el método recogerFirmasBase64(token) (para varios ficheros) o recogerFirma(token) (para un fichero) y que realizas la decodificación del array de bytes obtenido usando la clase org.apache.commons.codec.binary.Base64 y su método estático Base64.decodeBase64 11 de 12 Framework Atlas Servicios de Firma AFC Servidor 6. ENLACES RELACIONADOS Producto URL Axis2 http://ws.apache.org/axis2/ Certificados ICM http://desarrollo.madrid.org/certificados/ Descarga certificados de prueba http://desarrollo.madrid.org/certificados/descarga_de_certificados.htm 12 de 12