Diferencia entre revisiones de «Price Surfer - Configuración Autologin»

De Wiki PriceSurfer
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 12 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
= Integrar Price Surfer con su portal =
+
= Integrar Price Surfer y Price Navigator con su portal =
  
Se quiere realizar la integración de su portal con Price Surfer, para permitir a los usuarios que están logueados en su web puedan ingresar a Price Surfer sin volver a loguearse.
+
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”.
  
Price Surfer brinda la posibilidad de que desde su portal se llame a una URL que acepta parámetros para realizar la autenticación de un usuario, sin pasar por el formulario de login.
+
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.
  
La URL que se debe llamar es la siguiente http://<cliente>.psurfer.net/security/autologin, donde <cliente> es el subdominio que tiene asignado el operador.
+
La API espera un token de usuario. 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.
  
Esta URL acepta 3 parámetros:
+
= Autenticación por token de usuario =
  
'''username''': nombre del usuario de Price Surfer (es obligatorio).
+
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.
  
'''password''': contraseña de ese usuario (es obligatorio).
+
Siguiendo el ejemplo de la sección anterior, la firma quedaría de la siguiente manera:
  
'''request_locale''': lenguaje de la interfaz de usuario (es opcional, por defecto se utiliza el lenguaje que el usuario tiene definido en su cuenta).
+
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.
  
Estos parámetros se pueden pasar de dos formas:
+
= Validación de petición a través de HMAC =
* mediante GET: o sea, en la URL, por ejemplo:
 
<code>http://#cliente#.psurfer.net/security/autologin.html?username=usuario&password=contrasegna</code>
 
  
* o utilizando un POST, mediante un formulario donde se pasa el usuario y contraseña.
+
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).
  
Cuando Price Surfer recibe los datos, de usuario y contraseña:
+
= Cambios del lado del cliente: =
* si el usuario y contraseña son correctos se ingresa a Price Surfer
 
* en caso que el usuario y contraseña sean incorrectas, el sistema automáticamente lo lleva al formulario de login de Price Surfer.
 
  
La  integración se tiene que hacer del lado del operador. El operador tiene que armar la URL o el formulario con las credenciales del usuario y enviarlas a los servidores de Price Surfer.
+
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:
  
Ejemplo:
+
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
  
<code>http://prod.psurfer.net/security/autologin.html?username=albert&password=einstein</code>
+
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í:
  
= Funciones/tareas a desarrollar por el cliente =
+
http://{cliente-base-url}.app.pricenavigator.net/security/autologin.html?apiKey={userToken}&timestamp={timestamp}&signature={signature}
  
== Llamada a Price Surfer ==
+
Para ponerlo en valores de ejemplo
  
Para realizar la integración el cliente deberá desarrollar un llamado desde su portal a Price Surfer  de alguna de las dos formas antes mencionadas:
+
clientSecretKey = qY8NxIDIjtVPWxsT
  
* utilizando GET
+
timestamp = Thu, 29 Dec 2022 18:06:37 GMT
  
* utilizando POST
+
signature = f9f202bab9de55953a714ec69f218fd774d4433449a9f4ae09727362d623925d
  
 +
Nemo proveerá la clave secreta al cliente una vez que se habilite la funcionalidad.
  
== Alta de Usuarios  ==
+
= Recursos =
  
Para que la integración funcione se deben generar los usuarios en Price Surfer en forma manual.
+
Colección Postman con ejemplos: https://api.postman.com/collections/1129077-e69b96e6-4c0e-4cef-8201-ca2bc9372a0b?access_key=PMAT-01GNHEXG4R9CDM3J62F6R5Q4QQ
Podrán generar los mismos que en su portal, o en caso de desear que sean diferentes podrá generar una tabla intermedia en su sistema para establecer la relación entre los usuarios de su portal y del de Price Surfer
 
  
 +
HMAC Generator Online Tool: https://www.freeformatter.com/hmac-generator.html
  
== Acceso a buscadores de cada producto ==
+
Cualquier inquietud, podés escribirnos a support@nemogroup.net
 
 
Para generar el acceso a cada uno de los buscadores de los diferentes productos de Price Surfer, el operador deberá generar una página interna a la cual linkee el botón de cada producto, ej: webagencia.com/traslados donde programen a través de un javascript el valor del botón (por ejemplo: TRASLADOS) y lo usaría para armar el iframe de mas abajo.
 
 
 
Al hacer click en botón de producto abre una pantalla de carga con el siguiente código en su respectivo HTML
 
En primer lugar, deberá generar el autologin (si es que no lo hizo previamente y luego deberá generar el llamado al buscador de traslados de Price Surfer; como ejemplo en html, se vería así:
 
 
 
​<a class="producto" ref="traslados" target="_blank" href="#">TRASLADOS</a> Así entonces desde el código de Javascript toman el valor del TAG por la clase "producto" y/o la referencia al mismo, en este caso "traslados"​.
 
 
 
<code>
 
 
 
<html>
 
    <head></head>
 
    <body>
 
 
 
        <div id="pricesurfer" style="display: none;"></div>​​ >> DIV OCULTO DONDE TRAE LA NUEVA PAGINA.
 
       
 
        <div style="text-align: center;"><img src="/bundles/app/images/preload.png"></div>​​ >> IMAGEN DE ESPERA
 
 
 
        <script> ​​>> SCRIPT PARA INSERTAR WEB DE PRICE CON LA HOME DEL BUSCADOR DESEADO
 
 
 
            domready(function () {
 
                var iframe = document.createElement('iframe');
 
​                var product = document.getElementsByClassName("producto");​
 
 
 
 
 
                iframe.onload = function () {
 
                                        window.location.href = "http:/​​/URLWEB/​" '+product+' "​/index.html";
 
                                    };
 
 
 
                iframe.src = 'http://URLWEB/security/autologin.html?username=XXXX&password=XXXX&request_locale=es'; ​​>> URL PARA AUTOLOGIN PRICE SURFER
 
 
 
                document.getElementById('pricesurfer').appendChild(iframe);
 
            });
 
 
 
        </script>
 
 
 
    </body>
 
</html>
 
 
 
</code>
 
 
 
 
 
Para los distintos productos habría que cambiar ​la referencia o valor (d​​el enlace del tag <a>) por el modulo deseado​, (http://​​URLWEB/XXXXX/index.html)​​ por los que están mas abajo.
 
 
 
​​PRODUCTOS
 
*AÉREOS > flights
 
*HOTELES > hotels
 
*CASAS > houses
 
*COCHES > cars
 
*ACTIVIDADES > activities
 

Revisión actual del 17:21 8 mar 2023

Integrar Price Surfer y Price Navigator con su portal

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.

La API espera un token de usuario. 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}&timestamp={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