Política de senha
O Logto aplica a política de senha de diferentes maneiras, dependendo de como a senha é criada ou atualizada:
- Fluxos de usuário final, como a experiência de login pronta para uso, a Experience API e a Account API sempre aplicam a política de senha atual.
- Ações de administrador via Management API
patch /api/users/{userId}/passwordsão isentas, permitindo que você provisione ou redefina credenciais sem verificações de política quando necessário. - Para auditar senhas existentes em relação às regras atuais, chame
POST /api/sign-in-exp/default/check-passworde aja conforme o resultado da validação retornado. Leia Verificação de conformidade de senha para saber mais.
Configurar política de senha
Para novos usuários ou usuários que estão atualizando sua senha, você pode definir uma política de senha para impor requisitos de força. Acesse o Console > Segurança > Política de senha para configurar as definições da política de senha.
- Comprimento mínimo da senha: Defina o número mínimo de caracteres exigidos para a senha. (O NIST sugere usar pelo menos 8 caracteres)
- Tipos mínimos de caracteres exigidos: Defina o número mínimo de tipos de caracteres exigidos para a senha. Os tipos de caracteres disponíveis são:
- Letras maiúsculas:
(A-Z) - Letras minúsculas:
(a-z) - Números:
(0-9) - Caracteres especiais:
(!"#$%&'()\*+,-./:;<>=?@[]^\_`|{}~ )
- Letras maiúsculas:
- Verificação de histórico de vazamentos: Ative esta configuração para rejeitar senhas que já foram expostas em vazamentos de dados. (Fornecido por Have I Been Pwned)
- Verificação de repetição: Ative esta configuração para rejeitar senhas que contenham caracteres repetitivos. (ex.: "11111111" ou "password123")
- Verificação de informações do usuário: Ative esta configuração para rejeitar senhas que contenham informações do usuário, como nome de usuário, endereço de e-mail ou número de telefone.
- Palavras personalizadas: Forneça uma lista de palavras personalizadas (não diferencia maiúsculas de minúsculas) que você deseja rejeitar na senha.
Expiração de senha
A expiração de senha exige que os usuários redefinam sua senha após um determinado número de dias. Você também pode expirar manualmente a senha de um usuário específico, por exemplo, quando souber que ela foi vazada.
A política é verificada somente depois que o usuário digita a senha correta no login por senha. Usuários que fazem login com código de verificação, login social, SSO ou passkey não são afetados.
Ativar expiração de senha
Vá para Console > Segurança > Política de senha e encontre o card Expiração de senha:
- Ative Ativar expiração de senha.
- Defina o Período de validade da senha (dias), entre 1 e 9999 dias.
- Salve as alterações.
A opção permanece desativada até que a experiência de login tenha pelo menos um método de esqueci minha senha (e-mail ou telefone) com um conector funcional, já que os usuários só podem redefinir uma senha expirada por esse fluxo. Pelo mesmo motivo, enquanto a política estiver ativada, você não pode excluir o último conector de e-mail ou SMS que suporte o recurso de esqueci minha senha. Se seu cadastro não exigir endereço de e-mail ou número de telefone, alguns usuários podem não ter como receber um código de redefinição, então considere coletar um no cadastro.
O Logto registra quando a senha de um usuário foi definida ou alterada pela última vez. Quando essa senha atinge a idade do período de validade, o próximo login por senha do usuário é bloqueado até que ele a redefina. Usuários sem data registrada de alteração de senha são medidos a partir do momento em que você ativou a política, então ativá-la não expira todas as senhas de uma vez. Desativar e ativar novamente a política redefine esse tempo inicial.
Quando o usuário define uma nova senha, seja pelo fluxo de esqueci minha senha, pela Account API ou pela Management API, a idade da senha é reiniciada e qualquer expiração manual é removida.
Expirar a senha de um usuário manualmente
Quando a política de expiração de senha está ativada, você pode forçar um usuário específico a redefinir sua senha no próximo login:
-
Console: Vá para Console > Gerenciamento de usuários, abra a página de detalhes do usuário e clique em Expirar ao lado da senha do usuário. Em seguida, confirme a ação. O botão só fica disponível quando o usuário possui uma senha.
-
Management API: Chame
PATCH /api/users/{userId}/password/expirationcom o seguinte corpo:{"isExpired": true}
Se a política não estiver ativada, a API retorna 400 com o código de erro sign_in_experiences.password_expiration_not_enabled, e o botão Expirar no Console fica desativado.
Um caso comum é uma senha que se sabe ter sido vazada. Expirá-la faz com que o usuário prove que possui seu endereço de e-mail ou número de telefone com um código de verificação antes de poder definir uma nova senha e fazer login novamente. Se você quiser expirar senhas apenas manualmente e não forçar a rotação regular para todos os usuários, ative a política com um período de validade longo, como 3650 dias.
Expirar uma senha não desconecta o usuário das sessões existentes. Para cortar o acesso imediatamente, também revogue as sessões ativas do usuário e aplicativos de terceiros autorizados.
O que os usuários finais veem
Quando um usuário faz login com uma senha expirada, após digitar a senha correta, a página de login exibe um modal com a mensagem "Sua senha expirou e deve ser redefinida antes que você possa fazer login." Ao clicar em Redefinir senha, o usuário é direcionado para o fluxo de esqueci minha senha com seu identificador já preenchido. Depois de verificar com um código enviado para seu e-mail ou telefone e definir uma nova senha, ele pode fazer login novamente.
Se você construir sua própria interface de login com a Experience API, a solicitação de verificação de senha falha com o código de erro password.expired (HTTP 422). Trate esse erro enviando o usuário para seu fluxo de redefinição de senha.
Verificação de conformidade de senha
Após atualizar a política de senha no Logto, os usuários existentes ainda podem fazer login com suas senhas atuais. Apenas contas recém-criadas serão obrigadas a seguir a política atualizada.
Para impor uma segurança mais forte, você pode usar o POST /api/sign-in-exp/default/check-password API para verificar se a senha de um usuário atende à política atual definida na experiência de login padrão. Se não atender, você pode solicitar que o usuário atualize sua senha com um fluxo personalizado usando a Account API.
Recursos relacionados
Gerenciar usuários Cadastro e loginConfigurações de conta pela Account API
Desenhe sua política de senha