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.
# 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/mainNota 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.