Diagramas de secuencia - Token digital
Con la finalidad de mostrar el comportamiento de lo que se va a desarrollar en Token Digital a través de escenarios y secuencia de mensajes para llevar a cabo la transacción con el uso de Token Digital.
Flujos
Enrolamiento / Activación
En el escenario de vinculación de dispositivo más simple los servicios actuales de SPIN realizarán las validaciones necesarias para garantizar que tanto el usuario como el dispositivo a vincular son válidos.
Para realizar ésta operación se invoca el método /token/enable quien asociará el dispositivo a la cuenta del usuario y retornará la información necesaria para que la aplicación pueda generar el factor de autenticación.
Autenticación / Flujo transaccional
Para realizar la autenticación es necesario que el dispositivo esté vinculado previamente. La generación del factor se hará directamente desde la aplicación para continuar el flujo de autenticación que sigue actualmente la plataforma mediante la generación de un token que autorice las transacciones, como se muestra a continuación:
El diagrama representa los siguientes pasos:
Se verifica que el dispositivo actual se encuentre registrado para el uso de token digital.
La aplicación genera de un TOTP utilizando para ello la hora actual y la semilla que se entregó en la Vinculación.
El TOTP es enviado a token-service para que lo valide
En caso exitoso, se construye un token de autorización para la acción protegida
El token de autorización es enviado al servicio que lo valida y en caso afirmativo se ejecuta la acción protegida.
Autenticación con código de seguridad actual
Este flujo reutiliza el mecanismo de validación mediante token que sigue actualmente la validación mediante código de seguridad, que aparece a continuación
Otros flujos
Autorización desde PWA
Para implementar este flujo es necesario que la aplicación tenga una funcionalidad que permita generar un token digital y presentárselo al usuario para que lo ingrese en otro medio, por ejemplo una PWA. Los pasos a seguir son los siguientes:
Autenticación desde la página web y pantalla de solicitud de Token digital.
Generación de token digital en el dispositivo.
Validación de token digital y generación de token de autorización de acción protegida.
Validación de token de autorización de acción protegida y ejecución de acción protegida.
Vinculación detallada
En caso que al momento de realizar la vinculación no se haya validado el dispositivo, se realiza una confirmación mediante el envío de un código de activación enviado al usuario mediante OTP (En el diagrama actual se propone encapsular la funcionalidad asociada al envío de OTP en un único servicio llamado otp-service). Después de verificarse el dispositivo, la vinculación seguirá como se mencionó anteriormente.
Autenticación vía OTP
Se contempló un escenario en caso que la aplicación o página web no almacenara ninguna información sobre el token.
En este escenario, cuando un usuario desea realizar una acción protegida se solicita la generación de TOTP a los servicios de token digital y posteriormente se envía al dispositivo mediante OTP para ser ingresada a la aplicación del cliente y continuar con el flujo de autorización visto previamente.
De usar este escenario desde Spin se sugiere utilizar Push Notification como mecanismo de OTP para no deteriorar la experiencia del usuario. Debido a que los servicios de token digital requieren la validación del dispositivo enrolado, es necesario que sean los servicios consumidores los que identifiquen el dispositivo para su validación.
Versión | Fecha | Autor | Descripción del cambio |
---|---|---|---|
1 | Apr 17, 2023 | @Héctor Villa (Unlicensed) | Versión inicial de documento. Se contemplan los componentes contemplados en una exploración inicial de la solución. |
2 | Jun 30, 2023 | @Héctor Villa (Unlicensed) | Se actualizan diagramas considerando validación de deviceId y registro en base de datos |
3 | Jul 14, 2023 | @Héctor Villa (Unlicensed) | Actualización considerando que se continuará usando el componente de OTP de Spin |
4 | Jul 21, 2023 | @Héctor Villa (Unlicensed) | Se añade flujo de autenticación desde PWA |