...
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. |
Request
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 |
...
Response
...
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. |
Request
...
keyId: Clave de consulta de la cuenta |
Response
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 |
Request
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 |
Response
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 |
Request
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. |
Request
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 |
Request
keyId: Clave de consulta de la cuenta |
...
Response
...
. | 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 |
Request
keyId: Clave de consulta de la cuenta |
...
activation-token:
...
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 |
Request
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 |
Response
clientKey: Clave generada |
...
removeKey (DELETE /hsm/keys)
Verifica la existencia de una clave con el identificador especificado
Request
keyId : Identificador de la clave
Response
result: Resultado de la operación
refreshKey (DELETE /hsm/keys)
Elimina la clave con el identificador especificado
Request
keyId : Identificador de la clave
algorithm : Algoritmo a usar para generar calve
keySize: Tamaño de la cave generada
publicKeyAlgorithm: Algoritmo usado por el cliente para generar la clave pública
publicKey: Clave pública generada por el cliente
Response
result: Resultado de la operación
...
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)
Indica si existe una clave asociada al identificador
...
Descripción | Request | Response |
---|
result: Resultado de la operación
validateTotp (GET /hsm/keys/totp)
...
HTTP Codes |
---|
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 | 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
...
)
...
Valida el OTP generado por un usuario utilizando el algoritmo TOTP
Request
...
Descripción | Request | Response | HTTP Codes |
---|---|---|---|
Genera un TOTP para la semilla suministrada | serverKey: Semilla cifrada en AES256 | totp: Time based one time password |
...
Response
...
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:
...