Siempre creí que la aplicación de firmas digitales en un formulario de infopath era un tema sencillo por el cual no debería crear una entrada en mi blog dedicada a este tema; pero por ahi escuché el comentario “en infopath forms services no se puede usar firmas digitales” así que decidí desempolvar un proyecto en el cual usamos firmas digitales a inicios del año pasado y crear una entrada dedicada a este tema para orientar a aquellas personas que tienen dificultades en este tema y para recordar “como se hacía” por si algún día se me olvida.
Por defecto, los formularios infopath habilitados para mostrarse via web (Forms Services) no aceptan firmas digitales; pero se pueden definir secciones del formulario para aceptar la firma digital (en caso se requiera firmar todo el documento; pues se debería cargar todos los controles en una sola sección).
Primero, veamos un formulario de liquidación de gastos que contiene 3 secciones; es decir, va a ser firmado por 3 personas (no es un caso aplicado en la vida real; pero muy similar al que hicimos en dicho proyecto)
Vamos a configurar cada sección para que soporte firmas digitales. Ingresamos a las propiedades de la seccion
Ficha “firmas digitales” -> Agregar datos
Seleccionamos la sección que se va a firmar -> Aceptamos
Hacemos lo mismo en las otras secciones:
Ahora veamos la firma digital en cliente servidor:
Seleccionamos una imagen para firmar el documento:
Ingresamos un comentario:
El documento ha sido firmado y los controles de la sección no se pueden modificar.
Todo esto es bonito en cliente servidor; ahora viene la parte “interesante” que es la parte web. Para esta prueba el formulario ya estaba configurado para compatibilidad web tal como indiqué en una entrada anterior. (algún dia pondre el link a esa entrada.. jeje)
Via web el formulario se ve como la siguiente figura:
Ingreso algunos datos en la primera sección:
Firmo el documento, el explorador web me muestra una ventana flotante para ingresar los datos de la firma:
El sistema toma una foto del estado actual del formulario al momento de la firma:
El formulario ha sido firmado y no permite la modificación de los campos en la sección firmada:
Realizamos una segunda firma, para la segunda sección donde se encuentra el detalle de los gastos:
Luego de firmar, no se puede ingresar nuevas filas en la tabla dinámica ni modificar los datos ingresados en esta sección:
Firmamos la última sección:
Finalmente el formulario ha sido firmado en sus 3 secciones:
En cualquier momento se puede ver los detalles de la firma con la captura del estado del formulario en el momento que fue firmado.
Como bien diría mi madre “todo se puede en la vida “, yo agregaría “y aún más en el mundo de la informática” pues sí se puede configurar forms services para soportar firmas digitales, solo se deben hacer algunas configuraciones adicionales y tomar en cuenta algunos detalles como el uso de secciones. Todo sea por dejar de usar programas cliente servidor para llenar formularios web, como se hacía antiguamente.
Y es posible usar firmas digitales sin Infopath ni MOSS? Sólo teniendo WSS 3.0 instalado y programando algo en .Net?
Gracias, muy bueno el blog.
¿Qué configuración hay que hacer en el servidor para que acepta las firmas digitales?
O puedes indicarme alguna documentación disponible al respecto.
Muchas gracias.
Buenas. Estoy realizando un formulario Infopath que envia a una base de datos, y me gustaría poner en un campo la firma electrónica, alquien sabe como obtengo la firma para que se guarde en un campo de una base de datos???
Gracias a todos y Saludos.
Yumei.
Sólo hay un problema…. que no puedes usar estos formularios con algo distinto de Internet Explorer 🙁
Gema,
He probado en Firefox y Chrome; no se ha presentado problema alguno con respecto a la funcionalidad aunque los colores cambian un poco en la parte del diseño; si aún tienes problemas con el tema envíame un correo para ayudarte.
sebagiar,
podría ser que utilices un visor de infopath forms services dentro de cualquier aplicación web, ya no sería necesario el uso de WSS 3.0
José,
para el caso que he presentado en este artículo no es necesario hacer configuración alguna en el servidor, las firmas digitales se relacionan directamente al formulario.
Que tal, muy buen tutorial solo tengo una duda al respecto ya que a mi no me funciona la firma digital al publicarlo en Web. Tu certificado es local o esta hecho por algun servidor. Ya que yo tengo uno hecho por un servidor y me aparece el error durante la comprobacion de la firma. Me suena a problema con el servidor pero sin embargo el certificado esta bien creado. Alguna ayuda posible?
Saludos
Gerardo,
El certificado usado en mi implementación era local y fue accedido dentro de una intranet, no salía a internet; no deberías tener problemas al publicarlo en la web, el error no va por el lado de infopath debes tener algun problema con el acceso a tu certificado.