domingo, 14 de noviembre de 2010

Integrar firma digital en Dynamics Nav

Hace unos meses realicé un proyecto para la universidad sobre firmado digital de documentos. En concreto los documentos eran actas de nacimiento para una posible automatización de neonatos en el registros civil. Tenía que presentar una pequeña maqueta funcional para exponer el ciclo del proceso.
Para crear una PKI totalmente funcional usé EJBCA (http://www.ejbca.org/), para la generación de documentos y como base de datos, Dynamics Nav y para la firma digital una aplicación de la universidad Jaume I de Valencia llamada Cryptoapplet (http://projectestic.uji.es/pr/cryptoapplet/).
Cryptoapplet es una aplicación Java que permite la firma digital en múltiples formatos (incluidos e-factura) la gestión de certificados es transparente al usuario ya que se conecta directamente al repositorio de Internet Explorer o Firefox.
Permite la verificación de certificados mediante OCSP y aunque es fácilmente configurable para cualquier PKI con la que trabajemos viene preconfigurado para las principales autoridades de certificación (FNMT, DNI-e)
También permite realizar firmas en paralelo, verificación de certificados por CRL, múltiples formatos de salida... es una herramienta de firma digital muy potente y muy sencilla, os recomiendo que la tengáis en cuenta para proyectos que requieran cualquier tipo de firma digital, ya sean facturas digitales o simplemente firma de documentos internos de una empresa.
En el vídeo podéis ver como se integra Cryptoapplet con Dynamics Nav, como se genera el fichero xml y el resultado después de firmarlo.
Por cierto el formato de la firma es XADES-X-L



11 comentarios:

  1. Muy buen reportaje!!

    Lo de la firma, lo hiciste a través de código C/AL?

    Gracias.

    ResponderEliminar
  2. La firma la hago con Cryptoapplet, es un applet hecho en java, puedes integrarlo en html, php, usarlo con un applet-viewer como quieras.
    En el ejemplo lo que hago es generar un fichero xml chorra y pasarlo cómo parámetro a una página html que lo recoge y ejecuta Cryptoapplet devolviendo firmado el fichero xml en formato XADES.

    ResponderEliminar
  3. Muy bueno!! Lo tendré en cuenta. Gracias

    ResponderEliminar
  4. De nada, espero que te sea útil. Si tienes alguna duda sobre Cryptoapplet o su configuración no dudes en preguntarme, o si no la lista de correo del proyecto es muy muy útil y los responsables del proyecto son increíblemente rápidos y eficaces

    ResponderEliminar
  5. Gracias.

    Una última cuestión:

    Cuando tenga tiempo me descargaré y probaré el applet, pero dicho componente se puede manejar como como una variable tipo ocx ó automation en C/AL?

    Gracias de nuevo.

    Un Saludo,
    Víctor.-

    ResponderEliminar
  6. Yo lo meto en una página web local como javascrypt y llamo a la página web.
    Desde Nav creo el fichero/s que quiera firmar y lo coloco en un directorio de firmas. Desde Nav llamo a la página web pasando el/los fichero/s como parámetro y con otro javascript recojo ese/os fichero/os y se los paso a Cryptoapplet.
    Nav solo genera los fichero los coloca en una carpeta el resto es extra Nav

    ResponderEliminar
  7. Es lo que imaginaba.
    Gracias de nuevo.

    Una gran aportación.

    Saludos.-

    ResponderEliminar
  8. De todas formas hay una dll que te permite meter una pagina web dentro de un formulario de Nav.

    Tengo pendiente hacer un post sobre el tema, pero primero tengo que decodificar y volver a progamar yo la dll, ya que aunque es de licencia libre es de otro desarrollador.

    De todas formas la puedes encontrar en mibuso

    Un saludo

    ResponderEliminar
  9. Ops, se me pasó este último post!!
    Gracias.

    Un saludo,
    Víctor.-

    ResponderEliminar
  10. Muy interesante este blog y el articulo en particular, pero sin resquemor la Universitat Jaume I no es de Valencia es de CASTELLON ;-) ....

    ResponderEliminar
  11. Pues siento mucho la confusión. Me sabe especialmente mal por el gran trabajo que están haciendo y las ganas y entusiasmo que tienen los implicados en el proyecto Cryptoapplet. Yo cuando lo necesite para mi PFC me ayudaron muchísimo, resolvían las dudas que planteaba en el foro de forma casi inmediata, aunque fuera fin de semana o festivo.
    Mil disculpas por mi ignorancia.
    Un saludo.

    ResponderEliminar