Definición de servicios Token digital

A continuación, describimos los endpoints que contiene cada servicio desarrollado para Token Digital:

 

Detalle de endpoints

El detalle que se muestra es el camino deseado (happy path) de los endpoints desarrollados.

El código esperado es un 200 + un body, en estos casos

Ejemplo de body - EnableToken (POST /tokens/key):

Body - Request

{

    "deviceId": "15703c1c-352a-11ee-be56-0242ac120002",

    "keyId": "05616256-352a-11ee-be56-0242ac120002",

    "publicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCR9+qdg/HrRLzgkbphCnQpN+NscOEY8vQO/M+/U4erX3ZK9IcV9MulLyY4faIBV2LeJpeUDzemFygjz/e+as6gKjbrJ7jHldl0stpfyUv6Se5iwC2wunevURLjnyk31Af9QtJr5KGsNrtyVzNYis92LGUY64tHEVNoL6DmrD/JJwIDAQAB",

    "publicKeyAlgorithm": "RSA"

}

 

Body - Response

{

"seed": "PGh9l4M6kfEWQPSAlB2ELD9p1GTMZ/lQSzkBg2n/lhTOsZtNh2lvhoRkCCBnsGuZgjBGPIfHFye3yi/b5YUKl+2CA673Fg66WruKTU58ywk/rZYUKXOku2NI8PliZG9P9/nrgrZ75D5SxsuUv0DIj8A0WfdYu16PLFnH4MGhD6A="

}

Token-service

Gestiona la generación y validación del token digital

EnableToken (POST /tokens/key)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Habilita la autenticación de toquen digital basada en TOTP. Internamente el servicio genera y almacena una semilla usando HSM, la vincula al usuario y la retorna al cliente.

keyId: Clave de consulta de la cuenta

deviceId: Identificador del dispositivo

publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública

publicKey: Clave pública generada por el cliente

seed: Semilla generada cifrada con la llave publica suministrada

200: Generación exitosa.

403: keyId ya registrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles

 

DisableToken (DELETE /tokens/key)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Deshabilita la autenticación de token digital en caso de eliminación de cuenta o deseo del usuario mediante la eliminación del registro asociado al usuario en HSM.

keyId: Clave de consulta de la cuenta

 

Result: Resultado de la operación

200: Eliminación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

RefreshToken (PUT /tokens/key)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Actualiza la semilla asociada a la cuenta del usuario generando una nueva y retornándola

keyId: Clave de consulta de la cuenta

deviceId: Identificador del dispositivo

publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública

publicKey: Clave pública generada por el cliente

seed: Semilla generada cifrada con la llave publica suministrada

200: Generación exitosa.

403: keyId ya registrada.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles

 

GenerateToken (POST /tokens/key/server-totp)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Genera token digital basado en TOTP

keyId: Clave de consulta de la cuenta.

deviceId: Identificador del dispositivo.

 

totp: token generado para ser enviado al cliente

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

ValidateToken (POST /tokens/key/totp)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Valida token digital generado por el usuario en el tiempo definido para ello, verificando que corresponde a la misma semilla almacenada en HSM.

keyId: Clave de consulta de la cuenta.

deviceId: Identificador del dispositivo.

totp: Token generado por el cliente

timeWindow: ventana de tiempo para validar totp

result: Resultado de la operación

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

VerifyAccount (POST /tokens/account)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Verifica que la cuenta asociada a la calve de usuario se encuentre registrada en la base de datos de token digital.

keyId: Clave de consulta de la cuenta.

result: Resultado de la operación

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

VerifyDevice (POST /tokens/device)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Valida el dispositivo enviado por el cliente para identificar si está registrado en la base de datos de token digital.

keyId: Clave de consulta de la cuenta.

deviceId: Identificador del dispositivo.

result: Resultado de la operación

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

https://fintechdigital.atlassian.net/browse/PALO-37


Token-activation-service

GenerateActivationKey (POST/activations/activation-keys)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Genera el token de activación

keyId: Clave de consulta de la cuenta.

 

activationToken: Token para ser enviado al dispositivo

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

Enroll (POST /activations/enrollment)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Verifica el token de activación y si es válido

keyId: Clave de consulta de la cuenta

deviceId: Identificador del dispositivo

activationToken: Token para ser enviado al dispositivo.

publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública.

publicKey: Clave pública generada por el cliente.

seed: Semilla generada cifrada con la llave publica suministrada

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 


HSM-adapter

createKey (POST /hsm-adapter/keys)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Genera una clave criptográfica usando el módulo HSM, la almacena y la retorna

keyId: Identificador de la clave *

seedAlgorithm: Algoritmo a usar para generar clave

publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública

publicKey: Clave pública generada por el cliente

clientKey: Clave generada cifrada con la llave publica suministrada.

serverKey: Clave cifrada en AES256 para ser almacenada en la base de datos.

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

validateTotp (GET /hsm/keys/totp)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Verifica si se ha registrado una clave con el identificador suministrado

serverKey: Semilla cifrada en AES256

totp: TOTP a validar

timeWindow: ventana de tiempo para validar TOTP

result: Resultado de la operación

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 

GenerateTotp (POST /hsm/keys/totp)

Descripción

Request

Response

HTTP Codes

Descripción

Request

Response

HTTP Codes

Genera un TOTP para la semilla suministrada

serverKey: Semilla cifrada en AES256

 

totp: Time based one time password

200: Generación exitosa.

404: Cuenta no encontrada.

406: Parámetros de solicitud incorrectos.

408: Tiempo de espera excedido.

500: Servicios no disponibles.

 


Secuencia de servicios

Orden de despliegue

Aunque no hay dependencia entre servicios, es recomendable desplegarlos en el siguiente orden para realizar las pruebas de cada uno:​

Orden de despliegue de componentes de Token Digital