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
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
DisableToken (DELETE /tokens/key)
Descripción
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
RefreshToken (PUT /tokens/key)
Descripción
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
GenerateToken (GET /tokens/key/totp/)
Descripción
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
ValidateToken (POST /tokens/key/totp/)
Descripción
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
Response
result: Resultado de la operación
VerifyAccount (POST /tokens/account)
Descripción
Verifica que la cuenta asociada a la calve de usuario se encuentre registrada en la base de datos de token digital.
Request
keyId: Clave de consulta de la cuenta
Response
result: Resultado de la operación
VerifyDevice (POST /tokens/device)
Descripción
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
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 *
algorithm: 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