Token de acesso personalizado
O Logto oferece flexibilidade para adicionar reivindicações personalizadas dentro dos tokens de acesso (JWT / Token opaco). Com esse recurso, você pode incluir informações adicionais para sua lógica de negócio, todas transmitidas com segurança nos tokens e recuperáveis via introspecção no caso de tokens opacos.
Introdução
Tokens de acesso (Access tokens) desempenham um papel fundamental no processo de autenticação e autorização, carregando as informações de identidade do sujeito e permissões, e são passados entre o servidor Logto (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 (Token claims) são os pares chave-valor que fornecem informações sobre uma entidade ou sobre 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 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 forma segura e legível pelos clientes. Reivindicações comuns como
sub,iss,audetc são usadas em conformidade com o protocolo OAuth 2.0 (Veja este link para mais detalhes). JWTs permitem que 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 é autocontido e sempre requer uma etapa adicional de validação via endpoint de introspecção de token. Apesar do formato não transparente, tokens opacos podem ajudar a obter reivindicações e ser transmitidos com segurança entre as partes. As reivindicações do token são armazenadas com segurança no servidor Logto e acessadas pelos aplicativos clientes via endpoint de introspecção de token. Tokens de acesso são emitidos no formato opaco quando nenhum recurso ou organização específica é incluído na solicitação de autorização. Esses tokens são usados principalmente para acessar o endpoint OIDC
userinfoe 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 flexibilidade para adicionar reivindicações personalizadas dentro dos tokens de acesso. Com esse recurso, você pode incluir informações adicionais para sua lógica de negócio, todas transmitidas com segurança nos tokens e recuperáveis via introspecção no caso de tokens opacos.
Como funcionam as reivindicações personalizadas de token?
O Logto permite inserir 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 retornado será mesclado com o payload original do token e assinado para gerar o token de acesso final.
As reivindicações internas do token Logto não podem ser sobrescritas ou modificadas. As reivindicações personalizadas serão adicionadas ao token como reivindicações adicionais. Se houver conflito entre reivindicações personalizadas e internas, as personalizadas serão ignoradas.
Nota de segurança: Em implantações self-hosted, scripts personalizados de JWT são executados com os mesmos privilégios do processo do servidor Logto, portanto, conceder acesso para editar ou testar scripts é equivalente a conceder execução de código no host Logto. Este recurso é destinado apenas para administradores confiáveis: não permita que usuários não confiáveis ou de menor privilégio criem, modifiquem ou testem esses scripts, e não compartilhe o Console de Administração com eles.
Recursos relacionados
Adicione reivindicações personalizadas para tokens de acesso JWT com Logto para potencializar sua autorização