USO DE CLIENTE MINIAPPLET Proyecto Ref: Service Desk SERVICIO UNIFICADO DE MANTENIMIENTO DE APLICACIONES CA: OT: Ref SUMA Cliente Documento PRC: Gobierno de Cantabria DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet CONTROL VERSIONES Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet Versión Fecha elaboración Elaborado por 1.0 03/10/2014 SUMA Revisado por Aprobado por RESUMEN ACTUALIZACIONES Versión 1.0 Punto Descripción Versión inicial (Miniapplet 1.2) Página 2 de 9 Fecha aprobación Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet TABLA DE CONTENIDO 1. INTRODUCCIÓN 2. PRERREQUISTOS 3. IMPLEMENTACIÓN EN CLIENTE .................................................................................... ..................................................................................................... 4 .................................................................................................... 5 Página 3 de 9 6 1. Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet INTRODUCCIÓN Se necesita realizar el firmado de información a través de certificados utilizando únicamente tecnología de cliente, por lo que se utiliza el miniapplet de @firma en su versión 1.2 para realizar esta tarea, este documento resume los pasos a seguir para realizar esta tarea. Página 4 de 9 2. Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet PRERREQUISTOS Los mismos que se indican en la documentación del minapplet de @firma: Sistema Operativo o Windows XP SP3, Vista SP2, 7 SP1, 8 o superior, en 32 (x86) o 64 (x64) bits. o Windows Server 2003 R2 SP2 o superior, en 32 (x86) o 64 (x64) bits. o Linux 2.6 o superior (soporte prestado para Ubuntu y Guadalinex), en 32 (x86) o 64 (x64/AMD64) bits. o Mac OS X Snow Leopard (10.6.8 o superior), Lion (10.7.2 o superior) o Mountain Lion (10.8.1 o superior). Navegador web: o Mozilla Firefox 4.0 o superior (En Windows únicamente se soporta Firefox en 32 bits). o Google Chrome 15 o superior. o Apple Safari 5 o superior. o Microsoft Internet Explorer 7 o superior, en 32 o 64 bits. o Java SE 6 Update 38 (1.6.0_38) o superior, en 32 (x86). o Java SE 7 Update 10 (1.7.0_10) o superior en 32 (x86) o 64 (x64/AMD64) bits. JRE: Certificado digital de usuario instalado en el navegador / sistema operativo o disponible a través de un modulo PKCS#11 o CSP instalado en el navegador (caso del DNI-e). Para obtener más información sobre los requisitos mínimos se recomienda ver la documentación oficial de @firma, documento “MCF_manual-integrador_ES.pdf”, dicho manual se puede encontrar en el catálogo de componentes de amap.cantabria.es Página 5 de 9 3. Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet IMPLEMENTACIÓN EN CLIENTE El primer paso para la incorporación del cliente es la inclusión de las librerías de javascript que vamos a utilizar: <head> …. <script type="text/javascript" src="<entorno>/js/miniapplet/miniapplet.js"id="afirmacliente.js"/> <script type="text/javascript" src="<entorno>/js/miniapplet/afirmaClienteMiniapplet.js"/> …. </head> El id del primer script es importante y no debe ser eliminado. La última librería no pertenece al miniapplet pero contiene las funciones de firmado (firmar, cofirmar y contrafirmar) que nos permitirá realizar las tareas de firmado básico en una sola invocación de manera sencilla. El texto “<entorno>” debe ser sustituido por uno de los entornos de trabajo del Gobierno de Cantabria donde el miniapplet está desplegado. Desarrollo: https://sdesora07.intranet.gobcantabria.es/clientefirma Preproducción: https://soaspre05.intranet.gobcantabria.es/clientefirma Producción: https://aplicaciones6.cantabria.es/clientefirma A continuación se incorporará la llamada de inicialización de la librería <body> <script type="text/javascript"> Página 6 de 9 Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet inicializaClienteFirma(); </script> ….. </body> Es muy importante tener en cuenta que la carga de la librería (la llamada a inicializaClienteFirma) debe hacerse al principio del body como se muestra ya que de hacerse en el proceso de carga (método onload) o en otro momento anterior provocaría que no estuviesen cargados los prerrequisitos de invocación de la función y, por lo tanto, no se ejecutase correctamente. Una vez realizados estos pasos simplemente deberemos invocar a la función de firma concreta que deseemos, firmar, cofirmar, contrafirmar, en el momento adecuado. A continuación, se detalla cada uno de ellas. Firmar firmar(tipoFirma,datos,filtroTitular,filtroEmisor,filtroSoloFirma,firmaSalidaEnFichero,firmaMultiple,politicaFirma) Esta función espera recibir los siguientes valores como parámetros: TipoFirma: indica el tipo de firmar a aplicar sobre el contenido, puede tener uno de los siguientes valores: o 101: Indica que se va a firmar fichero en base 64 en formato CAdES Implícito. o 100: Indica que se va a firmar fichero en base 64 en formato CAdES Explicito. o 301: Indica que se va a firmar fichero en base 64 en formato PAdES Implícito. o 501: Indica que se va a firmar fichero en base 64 en formato XAdES Implícito. o 0: Solo aplicable a cofirma/contrafirma. Indica que se va a cofirmar/contrafirmar el fichero en base 64 en formato de la firma original. Datos: datos a firmar codificados en base 64. filtroTitular: indica el texto de filtrado del titular a utilizar para mostrar la lista de certificados con los que se firmará el contenido filtroEmisor: indica el texto de filtrado del emisor a utilizar para mostrar la lista de certificados con los que se firmará el contenido Página 7 de 9 Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet filtroSoloFirma: indica si se deben filtrar los certificados que no están diseñados para firma electrónica (valor “true") o por el contrario se muestran todos (valor “false”). firmaSalidaEnFichero: indica si la firma resultado de la operación se va a guardar en un fichero (valor “true) o en un string (valor “false”). firmaMultiple: Indica si la firma se va a aplicar a múltiples ficheros (true) o, por el contrario, se aplica a un único fichero (false). politicaFirma: Indica si se aplicará la política de firma (true) o, por el contrario, no se aplicará (false). En el caso de que se aplique, dependiendo del tipo de firma que se quiera aplicar, se realizará un tipo de firmado u otro. A continuación se indica la correspondencia: o CAdES: La firma resultante será CAdES-EPES. o PAdES: La firma resultante será PAdES-BES. o XAdES: La firma resultante será XAdES-EPES. Por ejemplo, si queremos firmar el texto “facturación mensual” (y su codificación en base64 es “ZmFjdHVyYWNp824gbWVuc3VhbA==”) con un certificado de firma (el que el usuario desee) podríamos invocar a la función de la siguiente manera: var firmado = firmar(“1”,” ZmFjdHVyYWNp824gbWVuc3VhbA== ”,null,null,false, true, false, false) De esta manera, tras la invocación quedaría en la variable “firmado” el contenido de la firma generada (codificada en base 64) con el certificado seleccionado por el usuario. Cofirmar cofirmar(tipoFirma,datos,filtroTitular,filtroEmisor,filtroSoloFirma,firmaSalidaEnFichero,firmaMultiple,politicaFirma) Esta función espera recibir como parámetros los mismos valores en que en el apartado "Firmar". Por ejemplo, si queremos cofirmar un documento ya firmado anteriormente, podríamos invocar a la función de la siguiente manera: var cofirmado = cofirmar("101",null,null,null,false,true,false,false); De esta manera, tras la invocación quedaría en la variable "cofirmado" el contenido de la cofirma generada (codificada en base 64) con el certificado seleccionado por el usuario. Contrafirmar contrafirmar(tipoFirma,datos,filtroTitular,filtroEmisor,filtroSoloFirma,firmaSalidaEnFichero,firmaMultiple,politicaFirma) Página 8 de 9 Proyecto Servicio Unificado de Mantenimiento de Aplicaciones Título Uso de cliente miniapplet Documento DGDIT-PLATFIRMA-1.0-Uso de cliente miniapplet Esta función espera recibir como parámetros los mismos valores en que en el apartado "Firmar". Por ejemplo, si queremos contrafirmar un documento ya firmado anteriormente, podríamos invocar a la función de la siguiente manera: var contrafirmado = contrafirmar("101",null,null,null,false,true,false,false); De esta manera, tras la invocación quedaría en la variable "contrafirmado" el contenido de la contrafirma generada (codificada en base 64) con el certificado seleccionado por el usuario. Para un uso avanzado de la función se recomienda la consulta de la documentación oficial de @firma. Página 9 de 9