Ir al contenido

Tokens no IXC ACS

Introducción

La autenticación de IXC ACS se basa en JWTs (JSON Web Tokens), una forma autocontida de token que carga en su payload un objeto JavaScript y una firma digital. Los JWTs utilizados en ACS se firman utilizando claves ECDSA (Elliptic Curve Digital Signature Algorithm).

Antes de utilizar los JWTs de la API de IXCsoft ACS, es crucial entender su funcionamiento y generar su par de claves ECDSA.

Estructura de un JWT

Un JWT está compuesto por tres partes principales:

  1. Cabezajo: Contiene información sobre el tipo de firma utilizado en Token.
  2. Corpo: Almacena datos relacionados con el usuario creador de Token, su destinatario e información del propio Token.
  3. Assinatura: Contiene una firma digital de las dos partes anteriores del Token.

El formato estándar de un JWT es:

xxxxxx.yyyyyy.zzzzzz

Donde: -xxxxxx: Cabecera codificada en base64Url -yyyyyy: Cuerpo codificado en base64Url -zzzzzz: Firma codificada en base64Url

Nunca transmita datos sensibles en un JWT. La información en el cuerpo de JWT solo está codificada, no cifrada. En conexiones inseguras, considere su JWT como desprotegido.

Detallamiento de las Partes del JWT

  • *Codificado:**``` eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9
* *Decodificado:**
```json
{
  "alg": "ES256",
  "typ": "JWT"
}

-typ: Especifica que el documento es del tipo JWT. -alg: Especifica el algoritmo criptográfico usado en la firma (siempre ES256 para Tokens de la API IXC ACS).

Cuerpo

  • *Codificado:**``` eyJpc3MiOiI2MTg1ODMyNGRlNmNlZjAwMTFmNTFiMDUiLCJleHAiOjE2MzgyMTU3MDgsImlhdCI6MTYzODIxNDcwOH0
* *Decodificado:**
```json
{
  "iss": "61858324de6cef0011f51b05",
  "exp": 1638215708,
  "iat": 1638214708
}

-iss: Identificador del emisor de JWT (ID del Client API). -exp: Timestamp UNIX de expiración de Token. -iat: Timestamp UNIX de creación de Token.

Se recomienda un breve período de validez para Token de autorización para reducir los riesgos de uso indebido.

Firma

  • *Codificado:**``` F1DRaeJcQ1oG8Nc33R0iSEBppEGFUQmLFKDzAaX3e9I2sTLZT0qOerw8nUhbcogAZsZpwQdQdAnU4B0SKIvBDA
La firma se genera automáticamente usando la clave privada del emisor de Token.
## Proceso de creación y uso de Token
1. Añada los datos necesarios al cuerpo de Token.
2. Assine Token usando el algoritmo ES256 y su clave privada.
3. Use Token generado para solicitar un Token de Acceso.
4. Envíe el Token como Bearer Token a la variable de autenticación de la API.
## Consideraciones de seguridad
- Mantenga sus llaves privadas seguras.
- Use HTTPS para todas las comunicaciones que involucran JWTs.
- Implemente rotación regular de claves para aumentar la seguridad.
## Lea también
- [Preset no ACS](./preset%20no%20acs)
- [Projetos ACS](../projetos%20acs)
- [Protocolo TR-069](./protocolo%20tr-069)