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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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. |
- PALO-37Getting issue details... STATUS
Token-activation-service
El servicio de activación genera un token para verificar el dispositivo y lo verifica posteriormente
GenerateActivationKey (POST/activations/activation-keys)
Descripción
Genera el token de activación
Request
keyId: Clave de consulta de la cuenta
Response
activationToken: Token para ser enviado al dispositivo
Enroll (POST /activations/enrollment)
Descripción
Verifica el token de activación y si es válido
Request
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
Response
seed: Semilla generada cifrada con la llave publica suministrada
HSM-adapter
Encapsula comportamiento de AWS Cloud HSM
createKey (POST /hsm-adapter/keys)
Descripción
Genera una clave criptográfica usando el módulo HSM, la almacena y la retorna
Request
keyId: Identificador de la clave *
seedAlgorithm: Algoritmo a usar para generar calve
publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública
publicKey: Clave pública generada por el cliente
Response
clientKey: Clave generada cifrada con la llave publica suministrada
serverKey: Clave cifrada en AES256 para ser almacenada en la base de datos
validateTotp (GET /hsm/keys/totp)
Descripción
Verifica si se ha registrado una clave con el identificador suministrado
Request
serverKey: Semilla cifrada en AES256
totp: TOTP a validar
timeWindow: ventana de tiempo para validar TOTP
Response
result: Resultado de la operación
GenerateTotp (POST /hsm/keys/totp/)
Descripción
Genera un TOTP para la semilla suministrada
Request
serverKey: Semilla cifrada en AES256
Response
totp: Time based one time password
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:
Add Comment