HELISA/API

Firma de seguridad entre conexión Helisa y App Externa

¿Por qué utilizar una firma de seguridad?

Debido a que el WebService es público y cualquier software se podría conectar y enviar información, es necesario garantizar que el cliente que se conectará tiene permisos para envío e inserción. La firma nos garantizará que es un cliente permitido y además que lo enviado no está corrupto o fue cambiado en el tramo de envío.

¿Qué tipo de firma se va a utilizar?

El firmado de la información se hará por medio de HMAC utilizando la función de hash SHA-256.

¿Cómo se va a utilizar la firma de seguridad?

Para el uso del firmado HMAC se deberá generar una llave a cada cliente del WebService. Cada cliente deberá tener un ID (puede ser el ID de la empresa a la que generará información), y a este ID se le generará la llave. Para el envío de la información el procedimiento, suponiendo qué se tiene la información del ID, la llave, y la información a enviar (JSON):

  1. Generar el HMAC del JSON utilizando SHA-256 y la llave.

  2. Enviar al WebService el JSON, el ID y la firma (el HMAC generado en (1)). El envío del HMAC, debido a que son bytes, será en base hexagecimal.

  3. El WebService buscará la llave generada para el ID, firmará el JSON y comparará las firmas.

  4. Si las firmas no son iguales se responderá con error (ver Esquema de respuestas).

  5. Si las firmas son iguales se continuará con el proceso de validación e inserción.

En el siguiente enlace encontrarán un archivo comprimido con el ejemplo del firmado de seguridad, este informa que el firmado está creado en JavaScript Firmado de seguridad.