Tokens no IXC ACS

Introdução

A autenticação do IXC ACS é baseada em JWTs (JSON Web Tokens), uma forma autocontida de token que carrega em seu payload um objeto JavaScript e uma assinatura digital. Os JWTs utilizados no ACS são assinados utilizando chaves ECDSA (Elliptic Curve Digital Signature Algorithm).

Antes de utilizar os JWTs da API do IXCsoft ACS, é crucial entender seu funcionamento e gerar seu par de chaves ECDSA.

Estrutura de um JWT

Um JWT é composto por três partes principais:

  1. Cabeçalho: Contém informações sobre o tipo de assinatura utilizado no Token.
  2. Corpo: Armazena dados relacionados ao usuário criador do Token, seu destinatário e informações do próprio Token.
  3. Assinatura: Contém uma assinatura digital das duas partes anteriores do Token.

O formato padrão de um JWT é:

xxxxxx.yyyyyy.zzzzzz

Onde:

  • xxxxxx: Cabeçalho codificado em Base64Url
  • yyyyyy: Corpo codificado em Base64Url
  • zzzzzz: Assinatura codificada em Base64Url

Nunca transmita dados sensíveis em um JWT. As informações no corpo do JWT são apenas codificadas, não criptografadas. Em conexões inseguras, considere seu JWT como desprotegido.

Detalhamento das Partes do JWT

Cabeçalho

Codificado:

eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9

Decodificado:

{
  "alg": "ES256",
  "typ": "JWT"
}
  • typ: Indica que o documento é do tipo JWT.
  • alg: Especifica o algoritmo criptográfico usado na assinatura (sempre ES256 para Tokens da API do IXC ACS).

Corpo

Codificado:

eyJpc3MiOiI2MTg1ODMyNGRlNmNlZjAwMTFmNTFiMDUiLCJleHAiOjE2MzgyMTU3MDgsImlhdCI6MTYzODIxNDcwOH0

Decodificado:

{
  "iss": "61858324de6cef0011f51b05",
  "exp": 1638215708,
  "iat": 1638214708
}
  • iss: Identificador do emissor do JWT (ID do Client API).
  • exp: Timestamp UNIX de expiração do Token.
  • iat: Timestamp UNIX de criação do Token.

Recomenda-se um curto período de validade para o Token de Autorização para reduzir riscos de uso indevido.

Assinatura

Codificado:

F1DRaeJcQ1oG8Nc33R0iSEBppEGFUQmLFKDzAaX3e9I2sTLZT0qOerw8nUhbcogAZsZpwQdQdAnU4B0SKIvBDA

A assinatura é gerada automaticamente usando a chave privada do emissor do Token.

Processo de Criação e Uso do Token

  1. Adicione os dados necessários ao corpo do Token.
  2. Assine o Token usando o algoritmo ES256 e sua Chave Privada.
  3. Use o Token gerado para solicitar um Token de Acesso.
  4. Envie o Token como Bearer Token ao Endpoint de Autenticação da API.

Considerações de Segurança

  • Mantenha suas chaves privadas seguras.
  • Use HTTPS para todas as comunicações que envolvem JWTs.
  • Implemente rotação regular de chaves para aumentar a segurança.

Etiquetas

JWT Autenticacao API Seguranca

Leia Também