Conta, login e dispositivos¶
Para: Dev · Fin · Adm — Conferido em 2026-10-19.
Toda pessoa que usa o painel entra pela página de login do Dracma (auth.), que é uma aplicação separada do painel. Esta página mostra como criar a conta, os métodos de login, a duração da sessão, a confirmação de identidade para ações sensíveis, os fatores, a recuperação de acesso e o controle de dispositivos.
O que é¶
- O login mora em
auth.(veja Ambientes e hosts). O painel empainel.não pede senha: ele redireciona você aoauth.e volta com uma sessão, pelo protocolo OIDC (código de autorização com PKCE). - Os tokens ficam só no servidor do painel. O navegador recebe um cookie opaco,
HttpOnly. - O painel exige dois fatores de login e um fator forte (passkey ou app autenticador) para ações sensíveis, como votar, aprovar, revelar segredo ou dado pessoal e mudar configuração. O painel e a API conferem de novo, uma depois da outra, cada ação sensível.
- A identidade de uma pessoa é um identificador interno imutável (um UUID). O e-mail não é identidade: uma pessoa pode ter vários e-mails, e trocar o e-mail não muda quem ela é.
Quando usar¶
Leia antes do seu primeiro acesso e quando for configurar a segurança da sua conta. Quem administra a equipe lê também Equipe e papéis.
Como funciona¶
Criar a conta (primeiro acesso)¶
Quem foi convidado cria a conta pela página Criar conta (/cadastro), usando o mesmo e-mail do convite:
- Etapa 01, e-mail: informe o e-mail do convite.
- Etapa 02, senha: escolha uma senha de 10 ou mais caracteres que não apareça em vazamentos conhecidos, ou escolha Continuar sem senha para entrar só com código por e-mail.
- Etapa 03, código por e-mail: digite o código de 6 dígitos que chegou ao e-mail.
- A conta só nasce quando o e-mail é confirmado pelo código. O convite não cria conta e não dá acesso: o acesso vale quando você o aceita (veja abaixo).
- Depois do cadastro, abra Conta e cadastre uma passkey ou um app autenticador. Sem fator forte você não consegue aprovar nem revelar nada no painel.
Um e-mail já verificado em outra conta recebe "Este e-mail já tem conta. Use Entrar".
Aceitar o convite do dono do tenant¶
O convite é o único caminho de entrada para o primeiro administrador e para cada pessoa da equipe. Quem convida é o Dracma (para o dono do tenant) ou um administrador da sua empresa (para a equipe). O convite não cria conta e não concede nada: só o aceite concede acesso. A pessoa convidada recebe um e-mail com um link do tipo https://auth.<domínio>/convite#…:
- O link é de uso único e vale 72 horas. O código do convite vai depois do
#, então não aparece em logs de servidor e a página o apaga do endereço assim que abre. - Entre ou crie a conta com o e-mail do convite. Se a conta já existe com outro e-mail, adicione o e-mail do convite e confirme com o código.
- O aceite exige pelo menos dois fatores e um fator forte recente: passkey, ou senha mais app autenticador. Conta que só usa código por e-mail precisa antes cadastrar passkey ou app autenticador.
- Ao aceitar, a página leva ao painel, que pede mais uma confirmação com fator forte e só então concede o acesso. Convite de dono torna a conta dona do tenant. Convite de equipe concede o pacote só na operação para a qual foi emitido.
Quem criou o convite não pode aceitá-lo, e contas com papel de plataforma do Dracma não aceitam. O Dracma não vê o link: ele só vai por e-mail, mesmo no hml.
| Resposta do convite | Significado |
|---|---|
| link não encontrado ou malformado | digitação errada ou convite inexistente (a mesma resposta para os dois casos) |
| convite expirado, já usado ou revogado | peça o reenvio ao Dracma. Cada reenvio invalida o link anterior (até 5, com 60 s entre eles) |
| e-mail diferente | a conta não tem o e-mail do convite verificado. Se a conta já existe com outro e-mail, adicione e confirme o e-mail do convite em Adicionar um segundo e-mail e aceite de novo |
| fatores insuficientes | cadastre passkey ou app autenticador e repita |
Convite de equipe¶
O convite de equipe segue o mesmo caminho e as mesmas regras do convite do dono. Muda o que ele concede e quem confere:
- O pacote vale só na operação em que a pessoa foi convidada. Convite da operação A não dá acesso à operação B.
- Se quem convidou perder, antes do aceite, o direito de gerir usuários daquela operação, o aceite é recusado (
issuer_revoked). Peça a um administrador que ainda tenha o direito para convidar de novo. - Quem convidou não aceita o próprio convite, e contas com função do Dracma não aceitam.
- O painel não revela a terceiros que um convite existe: quem não é a conta que usou o link recebe "não encontrado".
- O aceite é repetível: abrir de novo o mesmo link com a mesma conta, depois de aceito, mostra o mesmo resultado sem conceder nada a mais.
Entrar¶
O login tem três etapas:
- Etapa 01, e-mail. Marque Confiar neste dispositivo (sessão de 90 dias) se o aparelho é seu.
- Etapa 02, 1º método.
- Etapa 03, 2º método.
Uma conta com senha precisa de senha mais código por e-mail, em qualquer ordem. Uma passkey sozinha conclui o login e já vale como fator forte. A resposta é a mesma para e-mail existente e inexistente, para não revelar quem tem conta.
Métodos oferecidos¶
| Método | O que é |
|---|---|
| Passkey | Digital, rosto ou chave de segurança do dispositivo. Exige verificação do usuário. É um fator forte |
| Senha | A senha da conta, com 10 ou mais caracteres |
| Código por e-mail | 6 dígitos, válidos por 10 minutos, com 5 tentativas. O reenvio espera 30 s e cada e-mail recebe até 5 códigos por hora |
| App autenticador | Código de 6 dígitos de um app TOTP. É um fator forte |
| Código de recuperação | Um dos 10 códigos de uso único que você guardou |
Não disponível
O Dracma não envia código por SMS nem por ligação, e não aceita telefone como identificador ou fator. A rota de SMS responde 404. Use passkey, app autenticador ou código por e-mail.
Sessão¶
- A sessão dura 7 dias deslizantes: cada uso renova o prazo.
- Com Confiar neste dispositivo, a sessão dura 90 dias.
- O token de acesso dura 10 minutos e é renovado em segundo plano pelo servidor do painel. Você não é "chutado" a cada 15 minutos.
- Um login de IP novo ou de dispositivo novo é tratado como mais arriscado: quem tem fator forte precisa apresentá-lo além de senha e código.
Confirmação de identidade (step-up)¶
Ações sensíveis pedem que você tenha confirmado a identidade com um fator forte nos últimos 5 minutos. São elas, entre outras: criar tenant ou operação, pedir ou revelar chave, mudar IPs ou webhook, rotacionar segredo, convidar ou remover pessoas, votar em pedidos, revelar dado pessoal e exportar relatórios.
- Quando falta a confirmação, a tela mostra Confirmar identidade agora. Ela leva ao login, pede o fator forte e volta para a tela em que você estava.
- Se a conta ainda não tem fator forte, o código por e-mail confirma que é você e o login oferece Cadastrar passkey ou Cadastrar app autenticador na hora.
- A API repete a conferência: mesmo que alguém adultere a tela, a ação é recusada com
step_up_required.
Fatores, códigos de recuperação e e-mails¶
A página Conta mostra:
- seus e-mails e se cada um está verificado;
- se a conta tem senha;
- os fatores fortes cadastrados (passkey e app autenticador), com a data. Você cadastra e remove fatores aqui;
- os códigos de recuperação, 10 de uso único, mostrados uma vez quando gerados.
Regras:
- Mudar fator, e-mail, senha ou códigos exige verificar de novo com um fator diferente do que está sendo mudado, no maior nível disponível (passkey, depois app autenticador, depois código por e-mail), nos últimos 5 minutos.
- Toda mudança avisa todos os e-mails verificados da conta.
- Remover o último fator forte não é imediato: a remoção fica agendada por 24 horas e pode ser cancelada pelo link do aviso. Isso impede que quem roubou uma sessão apague seu fator.
- Pessoas que aprovam dinheiro precisam ter pelo menos um fator forte. A tela avisa: "Eles são exigidos para aprovar pagamentos no painel".
Adicionar um segundo e-mail¶
Use quando a sua conta já existe com outro e-mail e o convite chegou em um endereço novo, ou quando você quer ter mais de um e-mail de entrada. Abra Conta, depois Adicionar ou remover e-mails (/conta/emails):
- Informe o novo e-mail e escolha Adicionar e enviar código. A tela pede antes uma confirmação recente com um fator diferente do que está sendo mudado.
- Digite o código de 6 dígitos que chegou ao novo endereço. Ele vale 10 minutos, tem 5 tentativas e o reenvio espera 30 s.
- Com o código certo, o e-mail fica verificado e vinculado à sua conta. Você pode entrar com qualquer e-mail verificado. Todos os e-mails verificados recebem um aviso, com o endereço novo parcialmente oculto.
- Volte ao link do convite e aceite.
Regras:
- O e-mail nunca é a identidade: a conta continua a mesma, com o mesmo identificador interno.
- A tela responde igual quando o endereço está livre e quando ele já é verificado em outra conta. Nesse segundo caso nenhum código é enviado, nem ao dono do endereço, e nada é vinculado: você só descobre o problema porque o código nunca chega. Isso impede que alguém use o formulário para descobrir quem tem conta. Quando isso acontecer, use um e-mail que seja seu.
- Até 10 adições por hora por conta e até 10 por hora para o mesmo endereço, vindas de qualquer conta.
- Remover também pede confirmação recente. O último e-mail verificado não pode ser removido.
- Fora da produção, o endereço novo precisa aceitar e-mail dentro das regras do ambiente (veja "E-mail no hml" abaixo); endereços de teste não recebem e-mail.
Dispositivos conectados¶
A seção Dispositivos conectados lista cada sessão com o nome do navegador, o IP, o último uso e as marcas este e confiável.
- Encerrar derruba uma sessão que não seja a atual.
- Sair de todos os dispositivos encerra todas, inclusive a atual.
- Sair deste encerra só a sessão atual.
Sair (logout)¶
Sair no painel é irreversível: apaga a sessão no servidor do painel, revoga o token de renovação, encerra a sessão no login e bloqueia os tokens de acesso ainda vivos daquela sessão. Não basta apagar o cookie para voltar: é preciso entrar de novo com os fatores.
Exemplos¶
Erros e casos de borda¶
Recuperar o acesso¶
Há dois caminhos, ambos com força igual ou maior que a do login:
- Com código de recuperação: use um dos 10 códigos mais um código por e-mail.
- Sem código: peça a recuperação com o código por e-mail. Todos os e-mails da conta recebem um aviso, que você pode cancelar. Depois de 24 horas, um novo código por e-mail conclui a recuperação.
A sessão que sai de uma recuperação não vale como fator forte: ações sensíveis ainda pedem passkey ou app autenticador.
Bloqueios e limites¶
- Código por e-mail: 5 tentativas, depois o código morre. Reenvio a cada 30 s e até 5 códigos por hora por e-mail.
- Senha errada várias vezes seguidas bloqueia a conta por alguns minutos. Credencial errada, conta inexistente e conta bloqueada mostram a mesma resposta e levam o mesmo tempo.
- Muitos pedidos do mesmo IP ou da mesma conta levam a "Muitas tentativas. Aguarde alguns minutos".
Mensagens do login e do cadastro¶
| Mensagem | O que significa | O que fazer |
|---|---|---|
| "Digite um e-mail válido." | formato inválido | corrija |
| "O tempo para entrar expirou. Comece de novo." | o fluxo passou de 15 minutos | recomece |
| "Código incorreto ou expirado." | código errado, vencido ou já usado | peça outro |
| "E-mail, senha ou código não conferem." | credencial errada | tente de novo |
| "Muitas tentativas. Aguarde alguns minutos." | limite de tentativas | espere |
| "Este e-mail já tem conta. Use Entrar." | e-mail já verificado em outra conta | entre |
| "Senha fraca: use 10 ou mais caracteres que não apareçam em vazamentos conhecidos." | senha fora da política | escolha outra |
| "Esta senha apareceu em vazamentos conhecidos. Escolha outra." | senha vazada | escolha outra |
| "Não conseguimos enviar o código agora. Tente de novo em instantes." | o envio de e-mail falhou | tente de novo |
| "Este e-mail já está na sua conta." | o endereço já é seu | nada a fazer |
| "Muitas tentativas de adicionar e-mail. Tente de novo mais tarde." | passou do teto por hora | espere uma hora |
| "Aguarde um instante antes de pedir outro código." / "Muitos códigos pedidos para este endereço. Tente mais tarde." | reenvio cedo demais ou teto por hora | espere |
| "Muitas tentativas de código. Peça um código novo." | 5 códigos errados | peça outro código |
| "Este endereço não pode receber e-mail neste ambiente." | fora da produção, o endereço é de domínio de teste ou de terceiro não liberado | use um endereço real e permitido |
| "Você não pode remover o último e-mail verificado da conta." | a conta ficaria sem e-mail | adicione outro antes |
E-mail no hml¶
No hml, o código de login e os convites chegam por e-mail de verdade a qualquer endereço, exceto os de domínios de teste (test.dracma.cfd, .test, .invalid, .example), que nunca recebem e-mail. Use no hml o e-mail real de uma pessoa real. Contas de teste automatizado devem usar endereço de teste. Veja Dados de teste.