Docs
...

Tokens JWT

Os tokens trafegados pelo Identity, access token e o id token, são tokens JWT assinados. Eles são peças fundamentais na implementação do OAuth / OpenID Connect do Identity.

Assinatura dos Tokens

Os tokens utilizam um sistema de criptografia chamado de assinatura digital, a assinatura permite garantir a integridade destes tokens, ou seja, garantir que seu conteúdo foi emitido de fato pelo Identity e não foi alterado em nenhum momento por algum ataque como o “Man in the midle”.

A assinatura funciona com um par de chaves público-privado que o Identity usa para assinar o token, a aplicação que receber os tokens precisa utilizar a chave pública para fazer a validação desta assinatura.

Para um passo a passo de como fazer esta validação acesse esta página.

Formato do token JWT

O token JWT do Identity é formato por três principais partes:

  1. O header, que contém informações a respeito do token em si
  2. O payload, que contém o conteúdo do token, que são as claims
  3. A assinatura, que é um hash utilizado para validar o token

Exemplo de token JWT

eyJ0eXAiOiJhdCtKV1QiLCJraWQiOiJmYWFjMmNlYi1iMmQzLTQyOGQtYWI2MC03YmEyMmMyMjc3YWMiLCJhbGciOiJSUzI1NiJ9. eyJleHAiOjE3MzQ1MzM0NjMsImlhdCI6MTczNDUzMzE2Mywic3ViIjoiYXBwOjVDcEVNVlIwbWM3Tmk5MjJ0cjFsTUEiLCJhdWQiOlsiSXVndS5QbGF0Zm9ybSIsIkl1Z3UuUGxhdGZvcm0uNUNwRU1WUjBtYzdOaTkyMnRyMWxNQSIsIjVDcEVNVlIwbWM3Tmk5MjJ0cjFsTUEiXSwic2NvcGUiOiIiLCJjbGllbnRfaWQiOiI1Q3BFTVZSMG1jN05pOTIydHIxbE1BIiwiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS5pdWd1LmNvbS8ifQ. gv65jkfFisCw4pwgclDQzBX37KZU_lpWFFps06uXhAgnXNXwr1Ya70lHuBEVWCRj-82C5zegDvll513PobGTsbZMn0MrgcMdV63pcphiOUe5F0ARCUUgH73WszZ06IrDkQtCu3nEOxUKR5dnED5JwjFTUA-1SPk-j7kF7LPkFoE7D-p7ftsZvdnG71NV_tAV61mPpVKtlVYbkBL-4aGZmNLgHq-uqsntjx0Qy86Dd4xtHGh0doijYoLvH7Q1KI3HC2XwnIR7gihsRxW3FIgNcmNT8opnC-oeNVXMVPRzQ-NWyKayV6dlKeVOiN8mWopKBLLWgDz1SmarA8EVYGKQ

Claims

As claims de um token JWT são as propriedades contidas dentro do body do token, os valores destas propriedades são importantes para que se garanta a consistência do token, além de conter as informações em si trafegadas pelo token.

Chaves das claims e seus significados

Claim Significado
iss É a claim de issuer, representa a entidade que emitiu este token, o seu valor está no formato de URI
sub É a claim subject, representa o recurso que é dono das informações contidas no token, o seu valor está no formato de principal identifier
aud É a claim audience, representa o recurso que é o receptor do token, ou seja, quem deveria abrir e ler este token, o seu valor está no formato de audience da iugu e pode ser uma lista
exp É a claim expiration, representa o horário em que o token expirará, o seu valor está no formato de unix timestamp em UTC
iat É a claim issued at, representa o horário em que o token foi emitido, o seu valor está no formato de unix timestamp em UTC
client_id É a claim client id, representa o recurso que emitiu o token, ou seja, a aplicação que solicitou a emissão do token, o seu valor está no formato de id padrão da iugu
azp É a claim authorized party, assim como o client id, representa o recurso que emitiu o token, o seu valor está no formato de id padrão da iugu
acr É a claim de authentication context class reference, representa o nível do token emitido, o seu valor é um dos níveis de token existentes
auth_time É a claim de authentication time, representa o horário em que o usuário final se autenticou pela última vez, o seu valor está no formato de unix timestamp em UTC
sid É a claim session id, representa um identificador único da sessão do usuário final, o seu valor é o de um identificador padrão iugu