Diferencia entre revisiones de «Price Surfer - Configuración Autologin»
Línea 1: | Línea 1: | ||
= Autologin = | = Autologin = | ||
+ | |||
+ | Las plataformas Price Surfer y Price Navigator ofrecen a nuestros clientes la posibilidad de integrar nuestros productos a sus portales a través de una funcionalidad denominada “autologin”. | ||
+ | |||
+ | Este mecanismo es empleado por varios clientes para manejar la operatoria (o al menos parte de ella) directamente en sus portales embebiendo algunas secciones de nuestras plataformas. | ||
+ | |||
+ | A partir del 31 de Marzo del 2023, ampliando nuestras políticas de ciberseguridad, se introducen 2 cambios principales: | ||
+ | |||
+ | La API espera ahora un token de usuario en lugar de usuario/contraseña. El token de usuario es un código que identifica unívocamente a un usuario y que se empleará para identificar al mismo | ||
+ | Validación de la integridad de la petición empleando el protocolo HMAC (hash-based message authentication code). El protocolo lo empleamos a su vez para asignar validez temporal a una petición. | ||
+ | |||
+ | |||
+ | = Autenticación por token de usuario = | ||
+ | |||
+ | El cliente de autologin deberá almacenar en su sistema el token identificatorio para cada usuario, de manera análoga a como hoy almacena usuario/contraseña y deberá emplear dicho dato para autenticarse contra nuestra plataforma. | ||
+ | |||
+ | Siguiendo el ejemplo de la sección anterior, la firma quedaría de la siguiente manera: | ||
+ | |||
+ | http://{cliente-base-url}.app.pricenavigator.net/security/autologin.html?apiKey={userToken} | ||
+ | |||
+ | Para facilitar la implementación de este cambio, se incorporó en la exportación de usuarios de nuestro backoffice administrativo este dato. | ||
+ | |||
+ | = Validación de petición a través de HMAC = | ||
+ | |||
+ | El protocolo HMAC(hash-based message authentication code) estipula el envío de un código generado a partir de cierta información de la petición, un algoritmo criptográfico y una clave secreta (compartida en este caso por Nemo y el cliente). | ||
+ | |||
+ | |||
+ | = Cambios del lado del cliente: = | ||
+ | |||
+ | Para emplear esta funcionalidad el cliente deberá seguir los siguientes pasos: | ||
+ | |||
+ | Solicitar el alta de la funcionalidad a Nemo. | ||
+ | Nemo le proporcionará la clave secreta que empleará para generar el código de validación. | ||
+ | El cliente deberá enviar 2 parámetros adicionales en su petición: | ||
+ | |||
+ | timestamp . Marca de tiempo de la petición en el formato especificado en RFC 2616: Hypertext Transfer Protocol — HTTP/1.1 (primer formato). | ||
+ | signature. Código de autenticación generado por la función de hasheo SHA256 a partir de la clave secreta y la marca de tiempo indicada en el campo anterior. | ||
+ | SHA256(clientSecretKey, timestamp) = signature | ||
+ | |||
+ | La firma y la marca de tiempo deberán generarse para cada petición de autologin ya que tienen una validez temporal. | ||
+ | |||
+ | Si la marca de tiempo está expirada o la firma no se corresponde con dicha marca de tiempo y la clave secreta del cliente se rechazará la petición de autenticación. | ||
+ | |||
+ | Siguiendo el ejemplo anterior, la petición de autenticación quedaría así: | ||
+ | |||
+ | http://{cliente-base-url}.app.pricenavigator.net/security/autologin.html?apiKey={userToken}×tamp={timestamp}&signature={signature} | ||
+ | |||
+ | Para ponerlo en valores de ejemplo | ||
+ | |||
+ | clientSecretKey = qY8NxIDIjtVPWxsT | ||
+ | |||
+ | timestamp = Thu, 29 Dec 2022 18:06:37 GMT | ||
+ | |||
+ | signature = f9f202bab9de55953a714ec69f218fd774d4433449a9f4ae09727362d623925d | ||
+ | |||
+ | Nemo proveerá la clave secreta al cliente una vez que se habilite la funcionalidad. | ||
+ | |||
+ | = Recursos = | ||
+ | |||
+ | Colección Postman con ejemplos: https://api.postman.com/collections/1129077-e69b96e6-4c0e-4cef-8201-ca2bc9372a0b?access_key=PMAT-01GNHEXG4R9CDM3J62F6R5Q4QQ | ||
+ | |||
+ | HMAC Generator Online Tool: https://www.freeformatter.com/hmac-generator.html | ||
+ | |||
+ | Cualquier inquietud, podés escribirnos a support@nemogroup.net |
Revisión actual del 15:12 8 mar 2023
Sumario
Autologin
Las plataformas Price Surfer y Price Navigator ofrecen a nuestros clientes la posibilidad de integrar nuestros productos a sus portales a través de una funcionalidad denominada “autologin”.
Este mecanismo es empleado por varios clientes para manejar la operatoria (o al menos parte de ella) directamente en sus portales embebiendo algunas secciones de nuestras plataformas.
A partir del 31 de Marzo del 2023, ampliando nuestras políticas de ciberseguridad, se introducen 2 cambios principales:
La API espera ahora un token de usuario en lugar de usuario/contraseña. El token de usuario es un código que identifica unívocamente a un usuario y que se empleará para identificar al mismo Validación de la integridad de la petición empleando el protocolo HMAC (hash-based message authentication code). El protocolo lo empleamos a su vez para asignar validez temporal a una petición.
Autenticación por token de usuario
El cliente de autologin deberá almacenar en su sistema el token identificatorio para cada usuario, de manera análoga a como hoy almacena usuario/contraseña y deberá emplear dicho dato para autenticarse contra nuestra plataforma.
Siguiendo el ejemplo de la sección anterior, la firma quedaría de la siguiente manera:
http://{cliente-base-url}.app.pricenavigator.net/security/autologin.html?apiKey={userToken}
Para facilitar la implementación de este cambio, se incorporó en la exportación de usuarios de nuestro backoffice administrativo este dato.
Validación de petición a través de HMAC
El protocolo HMAC(hash-based message authentication code) estipula el envío de un código generado a partir de cierta información de la petición, un algoritmo criptográfico y una clave secreta (compartida en este caso por Nemo y el cliente).
Cambios del lado del cliente:
Para emplear esta funcionalidad el cliente deberá seguir los siguientes pasos:
Solicitar el alta de la funcionalidad a Nemo. Nemo le proporcionará la clave secreta que empleará para generar el código de validación. El cliente deberá enviar 2 parámetros adicionales en su petición:
timestamp . Marca de tiempo de la petición en el formato especificado en RFC 2616: Hypertext Transfer Protocol — HTTP/1.1 (primer formato). signature. Código de autenticación generado por la función de hasheo SHA256 a partir de la clave secreta y la marca de tiempo indicada en el campo anterior. SHA256(clientSecretKey, timestamp) = signature
La firma y la marca de tiempo deberán generarse para cada petición de autologin ya que tienen una validez temporal.
Si la marca de tiempo está expirada o la firma no se corresponde con dicha marca de tiempo y la clave secreta del cliente se rechazará la petición de autenticación.
Siguiendo el ejemplo anterior, la petición de autenticación quedaría así:
Para ponerlo en valores de ejemplo
clientSecretKey = qY8NxIDIjtVPWxsT
timestamp = Thu, 29 Dec 2022 18:06:37 GMT
signature = f9f202bab9de55953a714ec69f218fd774d4433449a9f4ae09727362d623925d
Nemo proveerá la clave secreta al cliente una vez que se habilite la funcionalidad.
Recursos
Colección Postman con ejemplos: https://api.postman.com/collections/1129077-e69b96e6-4c0e-4cef-8201-ca2bc9372a0b?access_key=PMAT-01GNHEXG4R9CDM3J62F6R5Q4QQ
HMAC Generator Online Tool: https://www.freeformatter.com/hmac-generator.html
Cualquier inquietud, podés escribirnos a support@nemogroup.net