OneSpan Sign Developer:expiración de sesión en un iFrame

Duo Liang, 3 de Octubre de 2018

Al desarrollar su aplicación con la ceremonia de firma integrada en un iFrame, puede considerar la caducidad de la sesión de firmante. Esta función agotará automáticamente el tiempo de espera de un usuario del documento si hay un período de inactividad. Por ejemplo, puede redirigir a su firmante a su página de inicio de sesión o ayudar a su firmante a extender su sesión.

En este blog, profundizaremos en la configuración relacionada con la sesión del firmante en OneSpan Sign y explicaremos cómo podemos construir un mecanismo de expiración de sesión de firma que brinde seguridad a sus usuarios sin dañar la experiencia del cliente.

Sesión del firmante en OneSpan Sign

Cuando un usuario comienza una ceremonia de firma, OneSpan Sign le asigna una sesión. Por defecto, esta sesión seguirá siendo válida a menos que el usuario esté inactivo durante un periodo de 30 minutos. Una vez que la sesión expira, el usuario verá el siguiente mensaje de error:

10-3-1

Cuando su usuario reanude la actividad, OneSpan Sign redirigirá la página a una URL preestablecida, como su página de inicio de sesión o lo que haya establecido en su nivel de cuenta.

Nota:

  • La sesión del firmante existe independientemente de que se utilice un iFrame
  • El tiempo de expiración de la sesión por defecto de 30 minutos puede ser modificado contactando con nuestro equipo de soporte.

La expiración de la sesión es un proceso sencillo si su usuario está firmando a través de un enlace de correo electrónico en una página designada. Pero cuando se firma en un iFrame, la cosa se complica. Si el usuario agota el tiempo de espera, OneSpan Sign no podrá redirigir la página. OneSpan Sign se limita al iFrame como una ventana secundaria, y no se notificará a la ventana padre para que tome el control del proceso.

Best practices: tiempo de espera de sesión en un iFrame

Para crear una política de tiempo de espera efectiva cuando OneSpan Sign está en un iFrame, debe aprovechar la URL de redirección. Podemos usar esta URL como enganche de enlace para notificar a la ventana padre. Una vez que la ventana principal recibe el notificador, puede redirigir el navegador del cliente a la página de inicio de sesión. Te mostraré todos los detalles en los siguientes pasos.

Paso 1:

Modifique la configuración de la "URL de redirección de la sesión del firmante" en su nivel de cuenta y vincúlela a un recurso dentro de su dominio. En el siguiente ejemplo, simplemente usamos una página HTML sin contenido (llamada child.html), y solo se usa para notificar a nuestra ventana padre.

Nota:

Paso 2:

En este recurso interno, llamamos directamente a una función JavaScript IIFE para notificar a nuestra ventana padre, como se indica a continuación:

 (function(){ window.parent.postMessage('ESL:MESSAGE:ERROR:SESSION_EXPIRE', "*"); })();

Debe utilizar una fuente que comparta el mismo origen que la ventana principal, porque esta fuente se utiliza para establecer la comunicación entre ventanas entre el iFrame y la página principal. Y en este ejemplo, hemos utilizado una convención de nomenclatura similar a la de nuestra notificación de eventos para mayor coherencia.

Paso 3:

Una vez que se activa el redireccionamiento de la ventana padre puede recibir el mensaje de publicación enviado desde el enganche de enlace y este mensaje puede manejarse como otras notificaciones enviadas desde OneSpan Sign. A continuación un código de muestra:

function receiveMessage(event) { var origin = event.origin || event.originalEvent.origin; var data = event.data; console.log(data, origin); switch (data) { case 'ESL:MESSAGE:ERROR:SESSION_EXPIRE': // llama a tu función aquí break; default: event.source.postMessage(data, origin) break; }	

Puede encontrar el código completo aquí.

Token de autenticación de uso único

Algunas organizaciones están preocupadas por los usuarios ociosos, ya que podría suponer un riesgo para la seguridad de la ceremonia de firma. Para estas organizaciones, la URL de firma puede formarse con un token de autenticación de uso único, de modo que una vez que la sesión del firmante expira y se le redirige, no puede volver a la ceremonia de firma con el token de autenticación original. El firmante tendrá que empezar la ceremonia desde el principio y volver a autentificarse.

La API REST para el token de autenticación de uso único es:

HTTP Request POST /api/authenticationTokens/signer/singleUse HTTP Headers Accept: application/json Content-Type: application/json Authorization: Basic api_key Request Payload { "packageId": "s-wy6PFASBlAKfnLJcbzoaMyTg=", "signerId": "[email protected]" }

Código del SDK de Java:

String singleUseToken = eslClient.getAuthenticationTokensService().createSignerAuthenticationTokenForSingleUse(packageId, signerId, signerSessionFields);

Código del SDK de .Net

string singleUseToken = eslClient.AuthenticationTokensService.CreateSignerAuthenticationTokenForSingleUse(packageId, signerId, signerSessionFields);

Y recomendamos construir la siguiente URL para obtener su URL de firma:

https://sandbox.esignlive.com/access?sessionToken={signerAuthToken}

Para obtener más información, visite nuestra Guía sobre tokens de autenticación.

Aplicando estas buenas prácticas, puede mejorar la experiencia de firma en un iFrame, proporcionando una función de caducidad de la sesión y facilitando el control del flujo de trabajo de su aplicación.

Si tiene alguna pregunta sobre este blog o cualquier otra cosa relacionada con la integración de OneSpan Sign en su aplicación, visite los foros de la comunidad de desarrolladores. Su opinión nos importa