Reivindicações de token personalizadas
Introdução
Tokens de acesso desempenham um papel crítico no processo de autenticação e autorização, carregando as informações de identidade e permissões do sujeito, e são passados entre o servidor Logto (que atua como servidor de autenticação ou provedor de identidade, IdP), seu servidor de serviço web (provedor de recursos) e aplicativos clientes (clientes).
Reivindicações de token são os pares chave-valor que fornecem informações sobre uma entidade ou o próprio token. As reivindicações podem incluir informações do usuário, tempo de expiração do token, permissões e outros metadados que são relevantes para o processo de autenticação (link para auth.wiki) e autorização (link para auth.wiki).
Existem dois tipos de tokens de acesso no Logto:
- JSON Web Token: JSON Web Token (JWT) é um formato popular que codifica reivindicações de uma maneira que é segura e legível pelos clientes. Reivindicações comuns como
sub
,iss
,aud
, etc., são usadas em conformidade com o protocolo OAuth 2.0 (Veja este link para mais detalhes). Tokens JWT permitem que os consumidores acessem diretamente as reivindicações sem etapas adicionais de validação. No Logto, tokens de acesso são emitidos no formato JWT por padrão quando um cliente inicia solicitações de autorização de recursos ou organizações específicas. - Token opaco (Opaque token): Um token opaco não é autossuficiente e sempre requer uma etapa adicional de validação via o endpoint de introspecção de token. Apesar de seu formato não transparente, tokens opacos podem ajudar a obter reivindicações e serem transmitidos de forma segura entre as partes. Reivindicações de token são armazenadas de forma segura no servidor Logto e acessadas pelos aplicativos clientes via o endpoint de introspecção de token. Tokens de acesso são emitidos no formato opaco quando nenhum recurso ou organização específico é incluído na solicitação de autorização. Esses tokens são usados principalmente para acessar o endpoint
userinfo
do OIDC e outros propósitos gerais.
Em muitos casos, as reivindicações padrão não são suficientes para atender às necessidades específicas de seus aplicativos, seja você usando JWT ou tokens opacos. Para resolver isso, o Logto oferece a flexibilidade de adicionar reivindicações personalizadas dentro dos tokens de acesso. Com esse recurso, você pode incluir informações adicionais para sua lógica de negócios, todas transmitidas de forma segura nos tokens e recuperáveis via introspecção no caso de tokens opacos.
Como funcionam as reivindicações de token personalizadas?
Logto permite que você insira reivindicações personalizadas no token de acesso
através de uma função de callback getCustomJwtClaims
. Você pode fornecer sua implementação da função getCustomJwtClaims
para retornar um objeto de reivindicações personalizadas. O valor de retorno será mesclado com a carga útil original do token e assinado para gerar o token de acesso final.
Reivindicações de token internas do Logto NÃO podem ser substituídas ou modificadas. Reivindicações personalizadas serão adicionadas ao token como reivindicações adicionais. Se houver qualquer conflito entre reivindicações personalizadas e as reivindicações internas, essas reivindicações personalizadas serão ignoradas.