Atualizações do produto Logto
🎉 Apresentando nosso lançamento de julho: Logto API SDK, Cofre de segredos para armazenamento federado de tokens, gerenciamento de TOTP e Códigos de Backup via Account API, e mais!
Logto API SDK
Um SDK TypeScript para interagir com a Management API do Logto usando autenticação por credenciais de cliente.
Como funciona:
- Crie um aplicativo machine-to-machine no Logto Console.
- Conceda ao aplicativo acesso à Management API.
- Instale o SDK via npm:
npm install @logto/api
- Use
createManagementApi()
para criar um cliente tipado da Management API com as credenciais do seu aplicativo.
Destaques:
- Gerencia automaticamente a autenticação e renovação do token OAuth.
- Suporta tanto Logto Cloud quanto instâncias self-hosted.
- Simplifica a integração com a Management API do Logto, permitindo que você foque em construir funcionalidades em vez de lidar com requisições API de baixo nível.
Cofre de segredos
O cofre de segredos é uma solução de armazenamento seguro no Logto para gerenciar dados sensíveis dos usuários, incluindo tokens de acesso, chaves de API, códigos de acesso e outras informações confidenciais. Esses segredos geralmente são usados para acessar serviços de terceiros em nome dos usuários, tornando o armazenamento seguro algo crítico.
Suporte ao Armazenamento Federado de Token
O armazenamento de tokens agora é suportado tanto para conectores de SSO social quanto empresariais. Quando habilitado, o Logto armazena o conjunto de tokens emitido pelo provedor de identidade após autenticação bem-sucedida. As aplicações podem então recuperar o token de acesso posteriormente—sem exigir que o usuário se autentique novamente—para chamar APIs de terceiros.
Conectores suportados:
- Conectores sociais: GitHub, Google, Facebook, OAuth 2.0 Padrão e OIDC Padrão
- Conectores de SSO Empresarial: Todos os conectores SSO baseados em OIDC
Como funciona:
- Habilite o armazenamento de tokens para conectores de SSO social e empresarial no Logto Console ou via Logto Management API.
- Uma vez habilitado, o Logto armazena automaticamente o conjunto de tokens emitido pelo provedor após autenticação bem-sucedida do usuário.
- Recupere o token armazenado através da Account API quando necessário.
Para mais detalhes, consulte a documentação do cofre de segredos.
Adicionar TOTP e Códigos de Backup via Account API
Agora os usuários podem adicionar TOTP e códigos de backup via Account API.
POST /api/my-account/mfa-verifications/totp-secret/generate
: Gera um segredo TOTP.POST /api/my-account/mfa-verifications/backup-codes/generate
: Gera códigos de backup.POST /api/my-account/mfa-verifications
: Adiciona um segredo TOTP ou código de backup usando o segredo ou códigos gerados.GET /api/my-account/mfa-verifications/backup-codes
: Recupera códigos de backup.
Outras Melhorias
- Conectores sociais: Adicionado suporte para fornecer um parâmetro
scope
personalizado ao gerar a URL de autorização para conectores sociais. Isso permite solicitar permissões adicionais ao provedor social ao chamar o endpoint de verificação social do Logto. Se o scope for fornecido, ele será usado na requisição de autorização; caso contrário, o scope padrão configurado nas configurações do conector será utilizado. - Console: Para melhor suportar o novo recurso de cofre de segredos, refatoramos o layout da página de detalhes do usuário. As identidades sociais e empresariais SSO do usuário agora estão organizadas em uma nova seção chamada Conexão. Esta seção lista todas as conexões vinculadas de um usuário, mostrando informações da identidade de terceiros e o status de armazenamento de token (se aplicável). Uma página detalhada da identidade do usuário também está disponível para cada conexão, fornecendo informações adicionais sobre a identidade vinculada e seus tokens associados.
Correções de Bugs
Restrição de chave estrangeira sensível ao tenant para a tabela organization_user_relations
Problema
Desenvolvedores podiam atribuir erroneamente um user_id
de outro tenant a uma organização, causando erros 500 nos endpoints da API de usuário da organização. A tabela original organization_user_relations
tinha apenas uma restrição de chave estrangeira em users (id)
, permitindo que qualquer ID de usuário existente fosse atribuído independentemente do isolamento do tenant.
Causa Raiz
O Logto aplica Segurança em Nível de Linha (RLS) em todas as tabelas para isolar o acesso aos dados dos tenants. Ao unir a tabela de usuários com organization_user_relations
, os dados reais do usuário tornam-se inacessíveis ao tenant atual devido às restrições de RLS, fazendo com que os dados do usuário retornem como nulos e desencadeiem erros 500 no servidor.
Solução
Uma restrição de chave estrangeira composta (tenant_id, user_id)
referenciando users (tenant_id, id)
foi adicionada para garantir que o ID do tenant da relação organização-usuário combine com o ID do tenant do usuário. Isso reforça o isolamento adequado de tenants no nível do banco de dados.