Login sem senha para aplicativos empresariais: links mágicos vs passkeys
Login sem senha para apps empresariais: compare links mágicos, passkeys e OTP com trocas claras de segurança, entregabilidade e recuperação de dispositivos.

O que “passwordless” realmente significa para um app empresarial
“Passwordless” não significa “sem segurança”. Significa que os usuários não criam nem memorizam uma string secreta de longa duração. Em vez disso, o login é aprovado com algo que eles têm (um dispositivo, uma caixa de entrada de email, um número de telefone) ou algo embutido no dispositivo (desbloqueio biométrico), geralmente apoiado por uma prova de curta duração como um link, um código ou uma chave criptográfica.
Para apps empresariais, o objetivo é prático: eliminar os dois maiores problemas diários das senhas. Pessoas esquecem e resetam. E pessoas reutilizam senhas, o que torna phishing e credential stuffing muito mais eficazes. Isso vira tickets de suporte, tomadas de conta de contas e funcionários frustrados que não conseguem acessar as ferramentas de que precisam.
As equipes normalmente saem das senhas porque isso muda a operação:
- Menos pedidos de “resetar minha senha”
- Menos exposição a páginas de phishing que roubam credenciais
- Onboarding mais rápido (sem aula sobre regras de senha no primeiro dia)
- Acesso mais limpo para contratados temporários ou funcionários sazonais
- Sign-in mais consistente entre web e mobile
Passwordless também introduz novos modos de falha. Se o login depende de email, atrasos ou filtros de spam podem bloquear o acesso no pior momento. Se depende de um telefone, um dispositivo perdido ou troca de número pode trancar alguém fora. Se depende de recursos compartilhados, como uma caixa de entrada compartilhada ou um telefone na linha de produção, é fácil cair em “contas compartilhadas”, o que prejudica trilhas de auditoria e offboarding.
A expectativa a definir cedo é simples: não existe um método que sirva para todos os usuários, dispositivos e ambientes de trabalho. A maioria dos apps empresariais acaba com um método primário de entrada mais um método de backup para recuperação.
Se você está construindo uma ferramenta interna ou um portal de clientes no AppMaster, planeje o login como qualquer outra funcionalidade central. Decida quem são seus usuários, quais dispositivos eles usam e o que sua equipe de suporte pode realisticamente lidar quando alguém não consegue entrar.
Visão rápida: links mágicos, códigos OTP e passkeys
“Passwordless login” geralmente significa que os usuários provam que são eles sem criar ou lembrar uma senha. As principais opções são links mágicos, códigos one-time (OTP) e passkeys. Os três reduzem a reutilização de senha, mas se comportam muito diferente na operação real.
Links mágicos conectam o usuário por meio de um link único enviado ao email. O link normalmente funciona uma vez e expira rápido. É prático porque o usuário só abre a caixa de entrada e toca. A contrapartida é que a caixa de entrada vira o guardião: se o email atrasa, é filtrado ou o usuário está desconectado do email naquele dispositivo, o login trava.
Códigos OTP são números curtos e temporários que o usuário digita. Podem ser entregues por email, SMS ou gerados num app autenticador. OTP por email tem a mesma dependência de entregabilidade que links mágicos, mas funciona mesmo se o usuário não puder abrir links. SMS OTP ajuda quando o email está lento, mas adiciona custo e pode ser vulnerável a takeover de número.
Passkeys são credenciais baseadas no dispositivo, armazenadas no celular, laptop ou chave de hardware. Usuários confirmam com impressão digital, reconhecimento facial ou PIN do aparelho. Geralmente é a experiência mais fluida depois de configurada, e é mais resistente a phishing do que links ou códigos. A parte difícil é a recuperação: pessoas perdem dispositivos, trocam de telefone ou usam estações de trabalho compartilhadas.
Uma configuração híbrida comum é:
- Passkeys como login primário em dispositivos conhecidos
- OTP por email ou SMS como fallback para novos dispositivos e recuperação
- Reset assistido pelo helpdesk para casos extremos (funcionários demitidos, caixas de entrada compartilhadas)
Se estiver construindo uma ferramenta interna em uma plataforma como AppMaster, trate o login como parte segurança, parte carga de suporte. O método “melhor” é aquele que seus usuários conseguem completar de forma confiável, mesmo na pior segunda-feira.
Compensações de segurança que importam
A pergunta chave de segurança é direta: o que um atacante pode realisticamente roubar e quão facilmente ele pode enganar um funcionário real para que entregue isso?
Resistência a phishing (quem cai no golpe)
Passkeys são mais difíceis de serem phishingadas no uso normal porque o login está ligado ao app ou site real e não depende de um código que você pode ler em voz alta ou colar numa página falsa. Códigos OTP (SMS ou autenticador) são os mais fáceis de obter por engenharia social porque usuários foram treinados a compartilhá-los sob pressão. Links mágicos ficam no meio: muita gente clica num link que parece um email de login, especialmente se o atacante imitar o estilo do seu email.
Uma comparação útil é perguntar o que o atacante precisa:
- Link mágico: acesso à caixa de entrada do usuário (ou controle de encaminhamento de email)
- OTP por email: acesso à caixa de entrada do usuário
- SMS OTP: um SIM swap, takeover da operadora ou acesso ao telefone e notificações
- Passkeys: acesso a um dispositivo confiável mais uma forma de passar pela tela de bloqueio (ou acesso à conta que sincroniza passkeys)
Básicos de sessão que reduzem danos
Mesmo um login forte pode ser minado por gerenciamento de sessão descuidado. Defina estes padrões cedo e os mantenha consistentes entre web e mobile:
- Vida curta para links/códigos (minutos, não horas)
- Uso único, e invalide links/códigos antigos quando um novo for emitido
- Revogação clara (encerrar todas as sessões, revogar um dispositivo, rodar tokens)
- Checagens extras para eventos de risco (novo dispositivo, nova localização, mudanças de privilégio)
Fluxos de admin e suporte são o risco silencioso. Se um agente do helpdesk pode “simplesmente mudar o email” ou “pular verificação” para desbloquear alguém, esse caminho será abusado. Em um portal interno de aprovação financeira, por exemplo, um atacante só precisa de um chat de suporte convincente para trocar o email e então receber links mágicos. Exija passos auditáveis para recuperação e ações administrativas, e separe permissões de “ajuda” das de “tomada de conta de conta”.
Entregabilidade de email: o custo oculto do login por email
Login por email (links mágicos ou códigos one-time) parece simples, mas a entregabilidade pode virar o maior custo operacional. O ticket de suporte mais comum não é “esqueci minha senha.” É “não recebi o email”.
Atrasos e emails perdidos geralmente vêm de filtros de spam, gateways corporativos e regras de caixa de entrada. Um link mágico que chega com três minutos de atraso não é só irritante. Pode desencadear pedidos repetidos, bloqueios e usuários frustrados que começam a compartilhar prints da caixa de entrada com o suporte.
Reputação do remetente importa mais do que a maioria das equipes espera. Em alto nível, seu domínio precisa provar que está autorizado a enviar emails de login e que as mensagens não foram alteradas. Os blocos básicos são SPF (quem pode enviar), DKIM (assinaturas de mensagem) e DMARC (o que fazer quando as checagens falham).
Mesmo com isso configurado, seus padrões de envio ainda podem te prejudicar. Se um usuário clicar em “enviar novamente” cinco vezes, você pode rapidamente parecer um spammer, especialmente quando muitos funcionários entram ao mesmo tempo após uma reunião ou troca de turno.
Limites de taxa e tentativas de reenvio precisam de um plano. Diminua a velocidade de envios repetidos sem prender usuários legítimos. Uma configuração prática inclui um curto cooldown de reenvio, um timer visível, uma dica “verifique spam” e um método de fallback (como SMS OTP ou passkey) para caixas bloqueadas. Também registre bounces, bloqueios e tempos de entrega, e mostre mensagens de erro amigáveis ao suporte que nomeiem o problema.
Se estiver construindo uma ferramenta interna, o filtro corporativo é o teste real. Um departamento pode receber os emails bem enquanto outro nunca os vê. Plataformas como AppMaster ajudam a ligar fluxos de email rapidamente, mas o trabalho a longo prazo é monitorar entrega e projetar um fallback elegante para que “não recebi o email” não vire incêndio diário.
SMS OTP: quando ajuda e quando atrapalha
SMS one-time codes parecem simples: digite seu número, receba uma mensagem, entre com o código. Essa simplicidade pode ser uma vantagem real quando usuários não estão prontos para passkeys ou quando o email é pouco confiável.
O primeiro problema é a entrega. SMS não chega igual em todos os países e operadoras. Roaming pode atrasar ou bloquear mensagens, e alguns celulares corporativos filtram remetentes desconhecidos. Mudanças de número também são comuns. Usuários trocam de operadora, perdem SIMs ou mantêm números antigos ligados a contas, e o “login rápido” vira ticket de suporte.
Segurança é a preocupação maior. SMS prova controle do número, não da pessoa. Isso cria arestas claras:
- Ataques de SIM swap podem redirecionar códigos para um atacante
- Planos familiares e dispositivos compartilhados podem expor mensagens a outras pessoas
- Números reciclados podem permitir que um novo dono receba códigos de uma conta antiga
- Pré-visualizações na tela de bloqueio podem mostrar códigos a quem estiver por perto
- Telefones roubados frequentemente ainda recebem SMS se o SIM continuar ativo
Custo e confiabilidade importam também. Cada tentativa de login pode gerar uma mensagem paga, e algumas equipes só notam a fatura após o lançamento. Provedores de SMS e operadoras também têm quedas. Quando textos falham durante troca de turno, seu help desk vira o sistema de login.
Então quando SMS faz sentido? Geralmente como fallback, não como a porta principal. Funciona bem para papéis de baixo risco (por exemplo, acesso somente leitura a um diretório simples), ou como última opção de recuperação quando o usuário não consegue acessar email ou passkey.
Uma abordagem prática é reservar SMS para recuperação e exigir uma checagem extra para ações sensíveis, como alterar dados de pagamento ou adicionar um novo dispositivo.
Passkeys na prática: login fluido, recuperação complicada
Passkeys são ótimas quando tudo está normal. O usuário toca “Entrar”, confirma com Face ID ou Touch ID (ou digita o PIN do dispositivo) e está dentro. Não há senha para errar, nem código para copiar, e phishing fica bem mais difícil.
Os problemas aparecem no pior dia, não no melhor. Um celular é perdido. Um laptop é substituído. Alguém chega com um dispositivo novo e não consegue acessar o antigo. Com passkeys, “esqueci a senha” vira “como eu provo que sou eu sem o dispositivo que prova que sou eu?”
Uso entre dispositivos também é mais confuso do que parece. Passkeys podem sincronizar dentro de um ecossistema, mas muitas equipes são mistas: iOS e Android, laptops Windows, Macs compartilhados ou dispositivos de contratados. Dispositivos compartilhados são especialmente problemáticos porque geralmente você não quer uma passkey salva num quiosque ou num computador de turno.
Uma política prática equilibra velocidade e recuperação:
- Permita múltiplas passkeys por usuário (telefone do trabalho + pessoal, ou telefone + laptop)
- Peça aos usuários que adicionem uma segunda passkey durante o onboarding, não depois
- Mantenha pelo menos um método de fallback (link mágico verificado por email ou um OTP estilo autenticador)
- Forneça um fluxo de recuperação assistido por admin para contas corporativas (com logs de auditoria)
- Defina regras para dispositivos compartilhados (use sessões temporárias, não passkeys salvas)
Exemplo: um supervisor de armazém usa um tablet compartilhado. Passkeys são perfeitas no celular pessoal, mas no tablet compartilhado você pode exigir uma sessão de curta duração mais um segundo fator. Se construir o app no AppMaster, trate isso como requisito de produto cedo para modelar recuperação, auditoria e resets baseados em função junto com o fluxo de login.
Passo a passo: escolhendo um método de login para seu app
Comece por quem está entrando e o que eles estão fazendo. Um funcionário com laptop gerenciado pode usar passkeys confortavelmente, enquanto um contratado em dispositivos compartilhados pode precisar de um código one-time. A melhor configuração normalmente é um método primário mais um fallback, não três opções que confundem todo mundo.
Responda estas perguntas nesta ordem:
- Quem são seus grupos de usuários (funcionários, clientes, admins, contratados) e que dispositivos eles realmente usam?
- Qual é seu sign-in primário, e qual é o fallback quando o primário falha?
- Qual é o caminho de recuperação se um usuário perde o telefone, troca de email ou não acessa o dispositivo?
- Qual é seu “orçamento de abuso” (quanto risco e carga de suporte você tolera)?
- O que você precisa provar depois de um incidente (logs e trilha de auditoria)?
Depois, defina janelas de tempo claras. Links mágicos devem expirar rápido, mas não tão rápido que pessoas que mudam de app não consigam usá-los. Códigos OTP devem ser de curta duração, com cooldown de reenvio para reduzir tentativas de força bruta e tickets de “spamar a caixa de entrada”.
Decida também o que acontece em falhas repetidas: bloqueio temporário, verificação step-up ou revisão manual.
Logar não é opcional. Capture logins bem-sucedidos, tentativas falhas (com motivo) e status de entrega de email ou SMS (enviado, bounce, atrasado). Isso torna problemas de entregabilidade visíveis e ajuda o suporte a responder “foi enviado?” sem chutar.
Por fim, escreva o script de suporte. Defina como o pessoal verifica identidade (por exemplo, ID do funcionário mais confirmação do gerente) e o que eles podem alterar (email, telefone, dispositivo). Se estiver construindo no AppMaster, mapeie essas regras nos fluxos de auth e processos de negócio cedo para que a recuperação seja consistente entre web e mobile.
Cenário de exemplo: um portal interno com dispositivos mistos
Imagine um portal de operações usado por 50 funcionários e alguns contratados. Ele cobre trocas de turno, notas de incidentes, solicitações de inventário e aprovações. Pessoas entram várias vezes ao dia, muitas vezes se deslocando entre mesas, armazéns e caminhões.
As restrições são bagunçadas, como na maioria das equipes reais. Alguns papéis usam aliases de email compartilhados (por exemplo, líderes de plantão rotativos). Trabalhadores de campo às vezes têm sinal de celular fraco, e algumas áreas não têm sinal interno. Gerentes usam majoritariamente iPhones e esperam login rápido e familiar. Contratados entram e saem, então o acesso precisa ser fácil de conceder e revogar.
Uma configuração prática nessa situação poderia ser:
- Passkeys para funcionários como padrão (bom equilíbrio entre velocidade e resistência a phishing)
- OTP por email como fallback quando o usuário está em um dispositivo novo ou passkey não está disponível
- SMS apenas para recuperação, e somente para um pequeno conjunto de usuários que não conseguem acessar o email de forma confiável (para limitar risco de SIM-swap e custo)
- Contas separadas para papéis compartilhados em vez de caixas compartilhadas, com acesso baseado em função dentro do portal
- Um caminho claro de recuperação para “dispositivo perdido” que termina re-registrando uma nova passkey
Por que isso funciona: funcionários têm login com um toque na maior parte do tempo, enquanto os fallbacks cobrem os dias estranhos (telefone novo, laptop esquecido, recepção ruim). Contratados podem ficar só no OTP por email, assim você não depende do setup de passkey em um dispositivo pessoal.
Depois de 30 dias, o sucesso parece menos logins bloqueados (especialmente para gerentes), menos reclamações de “não recebi o email” porque OTP é principalmente backup, e menos tickets de reset porque passkeys eliminam o ciclo de “esqueci a senha”. Se estiver construindo o portal no AppMaster, fica mais fácil testar essa mistura cedo porque dá para ligar autenticação e fluxos de mensagens rapidamente e ajustar com base em dados reais de suporte.
Erros comuns que geram tickets de suporte e risco
A maioria dos rollouts sem senha falha por motivos banais: o login funciona numa demo, então usuários reais batem nas bordas e o suporte se enche.
Um problema frequente com links mágicos é ser generoso demais. Se um link fica válido por horas (ou dias), ou pode ser usado mais de uma vez, vira uma chave transferível. Pessoas encaminham emails para colegas, abrem o link no dispositivo errado ou acham um link antigo na busca da caixa. Janelas de validade apertadas e uso único reduzem esse risco e diminuem tickets de “por que fui logado como outra pessoa?”.
Logins por OTP criam confusão quando reenvios são ilimitados. Usuários apertam “reenviar” cinco vezes, seu provedor de email vê um pico e futuros emails começam a cair em spam. Então usuários reenviam mais, piorando a entregabilidade. Coloque um cooldown curto, mostre um timer claro e limite tentativas por hora.
Outro deslize é não vincular o login ao contexto certo. Alguns apps deveriam permitir “clique no link no celular, continue no laptop”. Outros não. Para ferramentas internas sensíveis, é mais seguro vincular um link mágico ou fluxo OTP à mesma sessão de navegador que o iniciou, ou exigir confirmação extra quando o dispositivo mudar.
O erro mais caro é pular um fluxo real de recuperação. Quando usuários perdem um telefone ou trocam de dispositivo, equipes improvisam e admins começam a aprovar logins no chat. Isso vira rapidamente um problema de verificação de identidade.
Uma política simples que evita o caos:
- Links mágicos de curta duração e de uso único (minutos, não horas)
- Reenvios com throttling e limites por usuário e IP
- Regras claras para mudança de dispositivo, com checagens step-up para papéis sensíveis
- Um fluxo de recuperação documentado (e logs de auditoria) que não dependa de “pergunte a um admin”
Se estiver construindo no AppMaster, trate isso como requisito de produto, não pensamento tardio. Eles moldam tanto sua postura de segurança quanto a carga do suporte.
Checklist rápido antes de lançar
Antes de liberar o login sem senha, faça um cheque rápido de “ticket de suporte”. A maioria dos problemas não é cripto. São problemas de tempo, entrega e recuperação.
Comece pelos tempos. Um link mágico ou código one-time deve expirar rápido o suficiente para reduzir risco, mas não tão rápido que email lento, celular sem sinal ou troca de app faça falhar. Se escolher cinco minutos, teste com atrasos reais de inbox e pessoas reais.
Checklist pré-lançamento:
- Defina regras realistas de expiração para links e códigos, e mostre um erro claro quando expiram
- Adicione cooldowns de reenvio e regras de bloqueio, e documente para o suporte (quantas tentativas, quanto tempo esperar)
- Ofereça pelo menos dois caminhos de recuperação (por exemplo, passkeys + OTP por email) para que um telefone perdido não bloqueie o usuário
- Capture trilha de auditoria: quem entrou, quando, qual método usou e status de entrega (enviado, bounce, atrasado, falhou)
- Proteja ações de admin e de alto risco com checagens mais fortes (reautenticação para mudar dados de pagamento, adicionar admins, exportar dados)
Faça um ensaio pequeno: peça para um colega entrar com um dispositivo novo, com caixa cheia e em modo avião, depois recupere o acesso após “perder” o dispositivo primário. Se essa jornada for confusa, usuários vão abrir tickets.
Se estiver construindo no AppMaster, planeje onde esses eventos serão registrados (tentativas de login, resultados de entrega, prompts step-up) para que sua equipe possa depurar sem adivinhar.
Próximos passos: piloto, medir e melhorar sem desacelerar
Trate passwordless como uma mudança de produto, não uma caixa para marcar. Comece com um piloto pequeno: uma equipe, um método primário (por exemplo, passkeys) e um fallback (por exemplo, OTP por email). Mantenha o grupo pequeno o suficiente para falar com as pessoas quando algo quebrar, mas grande o bastante para ver padrões reais.
Decida de antemão o que significa “funcionar” e meça desde o dia um. Sinais úteis são simples: falhas de entrega (emails bounced ou atrasados, SMS não recebido), tempo médio de login (do toque até estar no app), tickets de suporte e motivos principais, bloqueios e pedidos de recuperação, e desistências (pessoas que começam o login e não terminam).
Depois, adicione controles com base no que aprender, não só no que soa melhor no papel. Se links de email atrasam, melhore colocação na inbox e ajuste expiração. Se SMS OTP está sendo abusado, adicione limites e checagens step-up. Se passkeys confundem em dispositivos compartilhados, deixe a opção “usar outro método” bem visível.
Mantenha o loop curto: envie uma pequena melhoria toda semana e registre o motivo em linguagem simples. Por exemplo: “Reduzimos a expiração do magic link de 30 para 10 minutos porque links encaminhados causaram duas tomadas de conta de conta.”
Se estiver construindo você mesmo, AppMaster pode ajudar a testar mudanças rápido: monte telas de auth no UI builder, envie email ou SMS via módulos pré-construídos e controle regras (limites, retries, passos de recuperação) no Business Process Editor sem reescrever tudo.
Quando o piloto estiver estável, expanda time a time. Mantenha o fallback até que seus dados mostrem que você pode removê-lo com segurança, não até o momento em que “acho que dá para tirar”.
FAQ
Passwordless significa que os usuários não criam nem memorizam uma senha de longa duração. Eles fazem login usando uma prova de curta duração (como um código ou link) ou uma credencial vinculada ao dispositivo (como uma passkey), frequentemente confirmada por biometria ou PIN do dispositivo. Feito corretamente, reduz resetes e reutilização de senhas sem eliminar a segurança.
Para a maioria dos apps empresariais, adote passkeys como padrão para funcionários com dispositivos pessoais gerenciados, com OTP por email como fallback para dispositivos novos e recuperação. Essa combinação costuma ser rápida no dia a dia e ainda funcional quando alguém perde um dispositivo. A melhor escolha é a que seus usuários conseguem completar de forma confiável em condições reais, não só numa demonstração.
Links mágicos são fáceis para começar, mas dependem muito da entregabilidade do email e do acesso à caixa de entrada. Falhas comuns são emails atrasados, filtragem como spam e usuários desconectados do email no dispositivo que estão usando. Se usar links mágicos, mantenha-os de curta duração, de uso único e sempre ofereça um método de login alternativo.
As passkeys costumam ser mais resistentes a phishing porque a credencial está ligada ao app/ site real e o usuário não cola segredos em páginas falsas. Códigos OTP são os mais fáceis de obter por engenharia social, já que as pessoas foram treinadas a repassá-los sob pressão. Links mágicos ficam no meio e ainda dependem da segurança da caixa de entrada.
Login por email costuma falhar por filtros de spam, gateways corporativos, regras de caixa de entrada ou reputação do remetente. A solução é tanto operacional quanto técnica: configurar autenticação do remetente (SPF/DKIM/DMARC), limitar reenvios, mostrar mensagens de erro claras e registrar resultados de entrega para que o suporte veja o que aconteceu. Também ofereça um fallback como passkeys ou recuperação por SMS para que um problema de email não bloqueie o trabalho.
SMS OTP pode ajudar quando o email é pouco confiável, mas tem limitações reais de segurança e entrega. SIM swaps, números reciclados e pré-visualizações na tela de bloqueio podem expor códigos, e a entrega varia entre operadoras e países. Em muitos apps empresariais, SMS faz mais sentido como recuperação ou para funções de baixo risco, não como método principal.
Planeje a recuperação desde o início: permita múltiplas passkeys por usuário e incentive adicionar um segundo dispositivo no onboarding. Mantenha um método secundário, como OTP verificado por email, e um fluxo de recuperação assistido por admin com logs de auditoria para casos extremos. Sem um fluxo bem definido, equipes acabam “aprovando logins no chat”, o que vira risco de tomada de conta de contas.
Dispositivos e caixas de entrada compartilhadas tendem a levar a contas compartilhadas, o que quebra trilhas de auditoria e complica o offboarding. O padrão melhor é contas de usuário separadas com acesso baseado em função, e sessões de curta duração em dispositivos compartilhados em vez de salvar credenciais de longo prazo. Se precisar suportar ambientes compartilhados, defina claramente como a identidade é verificada e registrada.
Mantenha links e códigos de curta duração (minutos), faça-os de uso único e invalide os antigos quando um novo for emitido. Adicione cooldowns de reenvio e limites de tentativas para reduzir força bruta e evitar “tempestades de reenvio” que prejudicam entregabilidade. Também defina ações claras de revogação de sessão, como deslogar todos os dispositivos e revogar um dispositivo perdido.
Modele o login como uma feature de produto: escolha um método primário e um fallback, depois implemente logs de entrega, bloqueios e passos de recuperação como fluxos de primeira classe. No AppMaster, você pode construir a UI das telas de autenticação, orquestrar verificação e limites em Business Processes e integrar módulos de mensagem para email/SMS mantendo eventos de auditoria consistentes entre web e mobile. O importante é projetar para falhas — email atrasado, dispositivo novo, telefone perdido — para que o suporte não vire o sistema de login.


