Veja também

As claims representam as permissões disponíveis dentro de uma determinada aplicação. Cada claim possui um tipo (ex: Compras) e um valor que define a ação permitida, como compras:read, compras:edit e compras:delete.
Claim:
  Type:  "Clientes"           ← o recurso (módulo do sistema)
  Value: "clientes:view"      ← a permissão nesse recurso
As chaves são declaradas no código da aplicação durante o desenvolvimento. O Kodigos ID embute essas claims no JWT durante o login. Quando a API recebe uma request, ela lê o token e verifica se as claims do usuário permitem a ação solicitada.

Anatomia de uma claim

Toda claim segue o padrão xxxxx. Um usuário pode ter um ou mais valores para o mesmo recurso (tipo). No exemplo abaixo, existem três valores possíveis: :view, :edit e :delete
Tipo (Type)     →  Nome do recurso como exibido no painel
                   Exemplos: "Clientes", "Projetos", "Dashboard"

Valor (Value)   →  recurso_em_minúsculo:ação
                   Exemplos: "clientes:view", "clientes:edit", "clientes:delete"

Como as claims aparecem no JWT

Quando o usuário faz login, o Kodigos Identity gera um access token no formato JWT. Ao decodificá-lo, é possível ver as claims do usuário embutidas diretamente no payload. Os recursos (ou tipos) podem ser organizados em qualquer estrutura que faça mais sentido para o contexto do seu projeto. No exemplo abaixo, cada recurso (Dashboard, Clientes ou Projetos) corresponde a um módulo do projeto de exemplo. O importante é que as claims reflitam a regra de negócio da aplicação.
Access token (exemplo)
eyJhbGciOiJSUzI1NiIsIc0NCwiYXVkIjoicnNfYWRtaW5hcGkiLCJzY29wZSI6InByb2ZpbGUeHAiOjE3NzM5NDQyNDQsImlhdCI6MTc3Mzk0MDc0NCwiYXVkIjoicnNfYWRtaW5hcGkiLCJzY29wZSI6InByb2ZpbGUgcm9sZXMgYWRtaW5hcGkgZW1haWwiLCJqdGkiOiJhZjMzZDVmZS00Yj.pdHkiLCJleHAiOjE3NzM5NDQyNDQsImlhdCI6MTc3Mzk0MDc0NCwiYXVkIjoicnNfYWRtaW5hcGkiLCJzY29wZSI6InByb2ZpbGUgcmXR5L9vc2NoZW1hcy54bWxzb2FwLm9yZy9hcGkgZW1haWwiLCJqdGkiOiJhZjMzZDVmZS00Yj.pdHkiLCJleHAiOjE3N...
Payload decodificado
{
  "sub": "user-id-123",
  "email": "maria@empresa.com",
  "name": "Maria Santos",
  "Dashboard": "dashboard:view",
  "Clientes": ["clientes:view", "clientes:edit"],
  "Projetos": ["projetos:view", "projetos:edit", "projetos:delete"],
  "Impostos": ["impostos:view", "impostos:edit"],
  "Família de Produtos": ["familiaProdutos:view"],
  "Etapas": ["etapas:view", "etapas:edit", "etapas:delete"],
  "iss": "https://seu-kodigos-id.com/identity",
  "exp": 1720000000
}