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. |
Response
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. |
Request
keyId: Clave de consulta de la cuenta. deviceId: Identificador del dispositivo. |
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. |
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 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 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 |
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
...
)
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:
...