Skip to content
Latchkey

O Que É uma Claim de JWT? Explicado

Uma claim de JWT é uma única declaração carregada no payload de um token, como quem o emitiu, sobre quem ele é, ou quando expira.

Um JWT é na verdade só um saco assinado de claims, e as claims são onde o significado mora. Cada claim é uma declaração chave-valor sobre o subject do token. Claims padrão descrevem identidade e validade; claims customizadas carregam o que uma aplicação precisar. No CI, as claims dentro de um token OIDC são exatamente o que provedores de nuvem inspecionam para decidir se concedem acesso.

O que é uma claim de JWT

Uma claim é uma entrada no payload JSON do JWT - uma chave e seu valor afirmando algo sobre o token ou seu subject. A coleção de claims, assinada pelo issuer, é o que um verificador lê para tomar decisões de autorização. Claims são legíveis por qualquer um, já que o JWT é apenas assinado, não criptografado.

Claims registradas (padrão)

Várias claims são padronizadas: o issuer (quem cunhou o token), o subject (quem ele identifica), o audience (para quem é), o tempo de expiração e o tempo de emissão. Verificadores rotineiramente checam que o token não expirou e que o audience corresponde a eles antes de confiar nele.

Claims customizadas

Além do conjunto padrão, um issuer pode adicionar claims específicas da aplicação. Tokens OIDC de CI, por exemplo, carregam claims descrevendo o repositório, a branch ou tag, o workflow e o ambiente. Elas permitem a uma parte confiante escopar a confiança a um pipeline muito específico em vez de à conta inteira.

Claims de JWT no CI

Quando um workflow solicita um token OIDC, o provedor de nuvem checa suas claims contra uma política de confiança: apenas tokens cuja claim subject corresponde ao seu repo e branch têm permissão para assumir um role. Acertar essa condição da claim subject é o cerne de um acesso à nuvem seguro e sem chave a partir do CI.

Scoping access by a JWT claim
# A trust policy condition on the OIDC subject claim
# "sub": "repo:acme/app:ref:refs/heads/main"
# AWS condition (conceptual):
#   StringEquals:
#     token.actions.githubusercontent.com:sub: repo:acme/app:ref:refs/heads/main

Nota Latchkey

O token OIDC que um workflow obtém em um runner Latchkey carrega as mesmas claims padrão de repo, branch e ambiente, então suas políticas de confiança de nuvem que combinam pela claim subject continuam funcionando sem alteração.

Principais conclusões

  • Uma claim de JWT é uma única declaração chave-valor no payload do token sobre o token ou seu subject.
  • Claims padrão cobrem issuer, subject, audience e expiração; claims customizadas carregam dados da aplicação.
  • Tokens OIDC de CI carregam claims de repo e branch, e políticas de confiança de nuvem escopam o acesso combinando-as.

Guias relacionados