Atualizações de produto do Logto
🎉 Apresentamos a nossa versão de julho: SDK da API do Logto, Cofre Secreto para armazenamento federado de tokens, gestão de TOTP e Códigos de Backup via API de Conta e muito mais!
SDK da API do Logto
Um SDK TypeScript para interagir com a API de Gestão do Logto utilizando autenticação por credenciais de cliente.
Como funciona:
- Cria uma aplicação machine-to-machine na Logto Console.
- Concede acesso à aplicação à API de Gestão.
- Instala o SDK via npm:
npm install @logto/api
- Usa
createManagementApi()
para criar um cliente tipado da API de Gestão com as credenciais da tua aplicação.
Destaques:
- Gere automaticamente a autenticação e renovação do token OAuth.
- Suporta tanto Logto Cloud como instâncias self-hosted.
- Simplifica a integração com a API de Gestão do Logto, permitindo-te focar na construção de funcionalidades em vez de lidar com pedidos API de baixo nível.
Cofre Secreto
O Cofre Secreto é uma solução de armazenamento seguro no Logto para gestão de dados sensíveis de utilizadores, incluindo tokens de acesso, chaves de API, códigos de acesso e outras informações confidenciais. Estes segredos são normalmente usados para aceder a serviços terceiros em nome dos utilizadores, tornando o armazenamento seguro crítico.
Suporte a Armazenamento de Tokens Federados
O armazenamento de tokens está agora suportado para conectores SSO sociais e empresariais. Quando ativado, o Logto armazena o conjunto de tokens emitido pelo fornecedor de identidade após autenticação bem-sucedida. As aplicações podem então recuperar o token de acesso mais tarde — sem precisar que o utilizador volte a autenticar-se — para chamar APIs de terceiros.
Conectores suportados:
- Conectores sociais: GitHub, Google, Facebook, OAuth 2.0 Padrão e OIDC Padrão
- Conectores SSO empresariais: Todos os conectores SSO baseados em OIDC
Como funciona:
- Ativa o armazenamento de tokens para conectores SSO sociais e empresariais na Consola Logto ou via API de Gestão Logto.
- Assim que ativado, o Logto armazena automaticamente o conjunto de tokens emitido pelo fornecedor após autenticação bem-sucedida do utilizador.
- Recupera o token armazenado através da API de Conta quando necessário.
Para mais detalhes, consulta a documentação do Cofre Secreto.
Adicionar TOTP e Códigos de Backup via API de Conta
Os utilizadores podem agora adicionar TOTP e códigos de backup via API de Conta.
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 TOTP ou código de backup utilizando 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. Isto permite-te pedir permissões adicionais ao fornecedor social ao chamar o endpoint de verificação social do Logto. Se o scope for fornecido, será utilizado no pedido de autorização; caso contrário, será utilizado o scope padrão configurado nas definições do conector. - Consola: Para suportar melhor a nova funcionalidade de Cofre Secreto, reestruturámos o layout da página de detalhes do utilizador. As identidades sociais e SSO empresariais do utilizador estão agora organizadas numa nova secção Ligações. Esta secção lista todas as ligações associadas a um utilizador, mostrando informação de identidade de terceiros e o estado de armazenamento de tokens (se aplicável). Uma página de identidade detalhada também está disponível para cada ligação, fornecendo mais informação sobre a identidade vinculada e os tokens associados.
Correcções de Bugs
Restrição de chave estrangeira sensível ao tenant para a tabela organization_user_relations
Problema
Os programadores podiam, por engano, atribuir um user_id
de outro tenant a uma organização, causando erros 500 nos endpoints da API de utilizadores de organizações. A tabela original organization_user_relations
só tinha uma restrição de chave estrangeira em users (id)
, permitindo que qualquer ID de utilizador existente fosse atribuído, independentemente do isolamento do tenant.
Causa raiz
O Logto aplica Security Row Level (RLS) em todas as tabelas para isolar o acesso dos dados por tenant. Ao juntar a tabela de utilizadores com organization_user_relations
, os dados reais do utilizador tornam-se inacessíveis ao tenant atual devido a restrições do RLS, levando os dados do utilizador a devolver null e desencadeando erros 500 no servidor.
Solução
Foi adicionada uma restrição de chave estrangeira composta (tenant_id, user_id)
referenciando users (tenant_id, id)
para garantir que o ID do tenant da relação organização-utilizador corresponde ao ID do tenant do utilizador. Isto garante o correto isolamento do tenant ao nível da base de dados.