A continuación, describimos los endpoints que contiene cada servicio desarrollado para Token Digital:
Detalle de endpoints
Table of Contents |
---|
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"
}
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Body - Response { "seed": "PGh9l4M6kfEWQPSAlB2ELD9p1GTMZ/lQSzkBg2n/lhTOsZtNh2lvhoRkCCBnsGuZgjBGPIfHFye3yi/b5YUKl+2CA673Fg66WruKTU58ywk/rZYUKXOku2NI8PliZG9P9/nrgrZ75D5SxsuUv0DIj8A0WfdYu16PLFnH4MGhD6A=" } |
Token-service
Info |
---|
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. |
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Token-activation-service
Info |
---|
El servicio de activación genera un token para verificar el dispositivo y lo verifica posteriormente |
GenerateActivationKey (POST/activations/activation-keys)
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 |
---|---|---|---|
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
Info |
---|
Encapsula comportamiento de AWS Cloud HSM |
createKey (POST /hsm-adapter/keys)
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 | ||
---|---|---|---|---|---|
Verifica si se ha registrado una clave con el identificador suministrado | 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. | 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 |
---|---|---|---|
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 |
Response
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. |
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: